当列包含因子

时,使用OR子集数据帧。 我想在R的数据帧中创建一个子集,该子集基于一列因子中的一个或另一个值,但看来我不能对因子值使用
|
。 例:
# fake data
x <- sample(1:100, 9)
nm <- c(\"a\", \"a\", \"a\", \"b\", \"b\", \"b\", \"c\", \"c\", \"c\")
fake <- cbind(as.data.frame(nm), as.data.frame(x))
# subset fake to only rows with name equal to a or b
fake.trunk <- fake[fake$nm == \"a\" | \"b\", ]
产生错误:
Error in fake$nm == \"a\" | \"b\" : 
operations are possible only for numeric, logical or complex types
我该怎么做? 显然,我的实际数据框在factor列中有3个以上的值,因此仅使用
!= \"c\"
将不起作用。     
已邀请:
您需要
fake.trunk <- fake[fake$nm == \"a\" | fake$nm == \"b\", ]
。一种更简洁的写法(尤其是具有两个以上的条件)是:
fake[ fake$nm %in% c(\"a\",\"b\"), ]
    
另一种方法是使用ѭ6并写
fake.trunk = subset(fake, nm %in% c(\'a\', \'b\'))
    

要回复问题请先登录注册