子集两个因素 - '&'对因素没有意义

时间:2018-03-28 11:45:25

标签: r subset

我正在尝试按指定条件过滤data.frame中的两个变量。

我希望将两个可变因子分组:a)评级b)位置

我过滤了评级变量,以便选择与我相关的评分,即评分== 0.

现在,我想选择'位置'变量只有一个评级== 0,但我无法这样做。我知道它是子集,但是无法正确获取代码....但是不能过滤“'”位置''变量我的位置变量的数量将超过我的评级变量。

我尝试了以下代码,但收到错误:

Unrated_MraLevel1 <- xyz[(MRA == "0" & xyzLocation)]
  

错误消息:在Ops.factor中(MRA ==&#34; 0&#34;,xyz $ Location):     '&amp;'对因素无意义

1 个答案:

答案 0 :(得分:0)

根据您的描述,这就是您想要的。

示例数据:

dd <- data.frame(location=rep(letters[1:3],each=3),
                 MRA=c(rep(0,3),1:3,c(2,0,0)))

汇总数据以查找所有location值等于零的级别:

a <- aggregate(MRA~location,dd,FUN=function(x) all(x==0))

提取要保留的级别:

keep.levels <- a$location[a$MRA]

子集数据集:

dd[dd$location %in% keep.levels,]