如何从数据框中的列中删除某些垃圾值?

时间:2020-10-13 09:32:39

标签: r

我在字符类型的数据框中有一个称为Region的列。它具有以下一些我要删除的垃圾值:

“#VALUE!”,“ 10.1”,“ 10.2”,“ 138”,“ 145”,“ 161”

但是当我尝试使用子集之类的东西来删除它们时,它们不会被删除,如下所示:

subset(pro_202_data,Region != c("#VALUE!","10.1","10.2","138","145","161"))

我尝试仅使用!=,但这也不起作用。

请帮助。

2 个答案:

答案 0 :(得分:0)

要做这个答案,我已经用您提供的内容创建了一个数据框,并试图过滤掉前两行,您可以对整个数据框进行类似的尝试。

> pro_202_data
   Region
1 #VALUE!
2    10.1
3    10.2
4     138
5     145
6     161
> subset(pro_202_data, !(Region %in% c("#VALUE!","10.1")))
  Region
3   10.2
4    138
5    145
6    161
> 

答案 1 :(得分:0)

您可以像这样子集:

单个向量:

x <- c("#VALUE!","10.1","10.2","138","145","161")
x[!x=="#VALUE!"]
[1] "10.1" "10.2" "138"  "145"  "161"

数据框:

df <- data.frame(
  Region = c("#VALUE!","10.1","10.2","138","145","161"), stringsAsFactors = F
)

df[!df$Region=="#VALUE!",]
[1] "10.1" "10.2" "138"  "145"  "161"

请注意添加了,,以选择数据框的所有列。