如何根据值对表进行子集并返回这些值?这只返回索引:
with(chickwts, table(feed))
with(chickwts, table(feed)) > 11
which(with(chickwts, table(feed)) > 11)
输出
> with(chickwts, table(feed))
feed
casein horsebean linseed meatmeal soybean sunflower
12 10 12 11 14 12
> with(chickwts, table(feed)) > 11
feed
casein horsebean linseed meatmeal soybean sunflower
TRUE FALSE TRUE FALSE TRUE TRUE
> which(with(chickwts, table(feed)) > 11)
casein linseed soybean sunflower
1 3 5 6
答案 0 :(得分:6)
这是另一种使用Filter
函数的方法:
Filter(function(x) x > 11, with(chickwts, table(feed)))
feed
casein linseed soybean sunflower
12 12 14 12
答案 1 :(得分:5)
您需要使用计算值两次,因此使用中间变量非常有用:
x <- with(chickwts, table(feed))
x[x>11]
feed
casein linseed soybean sunflower
12 12 14 12
答案 2 :(得分:1)
使用基本功能的另一个选项:
subset(data.frame(table(chickwts$feed)), Freq > 11)
结果:
Var1 Freq
1 casein 12
3 linseed 12
5 soybean 14
6 sunflower 12
使用 dplyr 包:
library(dplyr)
chickwts %>%
count(feed) %>%
filter(n > 11)
结果:
Source: local data frame [4 x 2]
feed n
1 casein 12
2 linseed 12
3 soybean 14
4 sunflower 12