我有一个data.frame,我想在R中工作。它完全搞砸了!我专注于1列,它应该包含数值。当然有一些NAs,但也有一些字符串(例如“无”,“不,谢谢”),除此之外还有像“< 1”和“1-2”这样的数字答案。十进制分隔符有时是“。”和“,”。
我如何处理所有这些问题?我还不需要任何估算。是否有一个命令忽略R中这一列的所有非数字行?
更新
# convert all decimal separators
group <- lapply(group, function(x) sub(',', '.', x))
# transform any non-numeric into NA
group <- lapply(group, as.numeric)
# remove all old and new NAs
group <- data.frame(group)
group_final <- na.omit(group)
非常感谢:)
答案 0 :(得分:2)
我们可以在na.strings
中使用read.csv/read.table
。它可以将值作为向量。例如,
df1 <- read.csv('yourfile.csv', na.strings=c('none', 'no thanks'))
这不会照顾"<1"
,"1-2"
等。目前尚不清楚OP如何处理这些问题。如果需要将小数分隔符更改为单个分隔符,请尝试
df1[] <- lapply(df1, function(x) sub(',', '.', x))