清理 Dataframe:NA、Decimals、Strings、Mixtures,
Cleaning Up Dataframe: NA, Decimals, Strings, Mixtures,
我有一个 data.frame,我想用 R 来处理它。它完全搞砸了!我专注于 1 列,它应该包含数值。当然有一些 NA,还有字符串(例如 "none"、"no thanks"),除此之外还有数字答案,如“<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)
非常感谢:)
我们可以在read.csv/read.table
中使用na.strings
。它可以将值作为向量。例如,
df1 <- read.csv('yourfile.csv', na.strings=c('none', 'no thanks'))
这不会处理 "<1"
、"1-2"
等。不清楚 OP 希望如何处理这些。如果小数点分隔符需要改为单个,试试
df1[] <- lapply(df1, function(x) sub(',', '.', x))
我有一个 data.frame,我想用 R 来处理它。它完全搞砸了!我专注于 1 列,它应该包含数值。当然有一些 NA,还有字符串(例如 "none"、"no thanks"),除此之外还有数字答案,如“<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)
非常感谢:)
我们可以在read.csv/read.table
中使用na.strings
。它可以将值作为向量。例如,
df1 <- read.csv('yourfile.csv', na.strings=c('none', 'no thanks'))
这不会处理 "<1"
、"1-2"
等。不清楚 OP 希望如何处理这些。如果小数点分隔符需要改为单个,试试
df1[] <- lapply(df1, function(x) sub(',', '.', x))