繁体   English   中英

清除 R 中的列数据

[英]Clean column data in R

我在尝试清理数据时遇到了一个小问题。 我有一个属性数据集,其中列出了属性大小作为字符。 大小列的大部分数据只是数字,但采用文本格式。 如果我将它们转换为数字数据,我会因为强制而丢失许多数据。 有一些特定的数据就像(20 * 40)......我无法转换。 由于此数据在转换时被强制转换为 NA。 有关如何处理此类问题的任何指导?

也许这个 function 可以提供帮助。

evalCell <- function(x){
  f <- function(x) eval(parse(text = x))
  sapply(x, f)
}

x <- c("(20*40)", 123, "1 + 2*3", "(1 + 2)*3")
evalCell(x)
#  (20*40)       123   1 + 2*3 (1 + 2)*3 
#      800       123         7         9 

如果不需要返回向量的名称,请让 function 返回unname(sapply(etc))

我们可以使用mapparse_expr

library(purrr)
map_dbl(x, ~ eval(rlang::parse_expr(.x)))
#[1] 800 123   7   9

数据

x <- c("(20*40)", 123, "1 + 2*3", "(1 + 2)*3")

你可以试试

sapply(yourColumn, function(X) eval(parse(text=X)))

例子:

> sapply(c("5+5", "22", "10*5"), function(X) eval(parse(text=X)) )
 5+5   22 10*5 
  10   22   50 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM