清理数据帧:NA,小数,字符串,混合,

时间:2016-02-11 11:20:50

标签: r missing-data

我有一个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)

非常感谢:)

1 个答案:

答案 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))