正确过滤子集R

时间:2016-02-23 03:20:39

标签: r statistics

我试图对数据进行分组,但似乎我做错了。

我的数据是一个列数据,标题如下:

platform
========
service
vps
dedic
dedic
vps
service
dedic
....
...
..
.

我从以下大数据集中得到了它:

servertype<- mydata[c(18)] #it was 18th variale

现在我试图过滤它并仅将我需要的内容分组,省略所有&#34;服务&#34;

servertype <- subset(servertype, platform=="dedicated" | platform=="vps")

我希望得到类似的东西:

platform
========
vps
dedic
dedic
vps
dedic
....
...
..
.

通过检查数据,这正是我得到的

但是当我查看摘要时,我正在

> summary(servertype)
      platform   
 dedicated:8564  
 service  :   0  
 vps      :4677 

当绘图时,&#34;服务&#34;也出现了......

我尝试重启R,重启会话,清理数据等。:)

但是没有变化,我认为条件的子集不能像我预期的那样工作? 还有其他方法吗?

2 个答案:

答案 0 :(得分:2)

再次factor数据:

#sample data
mydata = data.frame( platform = c('service','vps','dedic','dedic','vps','service','dedic'))

#subset
mydata = subset(mydata, mydata$platform != 'service' )

#factor the data again
mydata$platform = factor(mydata$platform)

#check plot
plot(mydata)

初始数据有3个因素。要使用新的因子级别进行计算,只需对数据重新运行factor

新数据只有两个因子水平。

> summary(mydata)
  platform
 dedic:3  
 vps  :2  

答案 1 :(得分:1)

我认为你需要的是这个。如果原始列是一个因子,子集列将保留所有原始因子级别。再次应用因子函数删除它们。

Drop factor levels in a subsetted data frame