[英]Removing a particular category from a data frame in R
我在R的数据框中只有一列,看起来像这样:
blue
green
blue
yellow
black
blue
green
如何删除所有表示蓝色的行? 请记住,我不要在该行中表示NULL值:我希望删除整个行。
谢谢 :)
也要注意因子变量和特征向量之间的差异。
默认情况下,因子保留所有原始级别,除非您将更改后的向量重新分配为新因子,或使用其中一种重新级别函数。
> DF <- data.frame(v = factor(c("red", "blue", "green", "blue")))
> summary(DF)
v
blue :2
green:1
red :1
> summary(DF[ DF$v != "blue", , drop=FALSE])
v
blue :0
green:1
red :1
> DF <- DF[ DF$v != "blue", , drop=FALSE]; DF$v <- factor(DF$v); summary(DF)
v
green:1
red :1
>
关于什么
> df1 = data.frame(a=c("Red", "Blue", "Red"), b=1:3)
> df1[df1$a!= "Blue",]
a b
1 Red 1
3 Red 3
如果所有这些方括号,逗号和美元符号使您感到困惑,那么为什么不尝试使用“子集”:
> d=data.frame(a=c("Red", "Blue", "Red"), b=1:3)
> subset(d,a!="Blue")
a b
1 Red 1
3 Red 3
> Data[Data!="blue"]
[1] "green" "yellow" "black" "green"
要么
> Data[which(Data!="blue",TRUE)]
[1] "green" "yellow" "black" "green"
编辑以回应Joris的评论(这适用于1列data.frames):
> str(Data)
'data.frame': 7 obs. of 1 variable:
$ V1: Factor w/ 4 levels "black","blue",..: 2 3 2 4 1 2 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.