我正在处理一个朋友上个月内发送的所有手套的索引。它位于框架df
中,相关属性为to
和time
。我想隔离to
中12个最常用名称中的任何一个的实例。我有一个数据帧summary
,其中每个to
的唯一值及其频率。 summary
的定义是:
> summary <- arrange(count(df, to), desc(n))
我尝试使用filter()比较df$to
和head(summary$to, 12)
的值
> top12 <- filter(df, to == head(summary$to, 12))
这给了我错误
Warning message:
In to == head(summary$to, 12) :
longer object length is not a multiple of shorter object length
和top12
的一个非常奇怪的数据帧,它似乎从每个to
中随机选择实例,并且行数少于前5个to
值中每个实例的行数。我可以使用带有手动输入名称的矢量来获得我应该的名称,但是我想要一个可扩展的解决方案,这样当我添加未来几个月的数据时,我可以轻松扩展或缩小包含的范围并轻松更新。由于矢量有效,因此我尝试将head(summary$to, 12)
转换为矢量,但遇到相同的错误。
> top12 <- filter(df, to == c("name 1","name 2", ... "name 12"))
> top12 <- filter(df, to == as.vector(head(summary$to, 12)))
Warning message:
In to == as.vector(head(summary$to, 12)) :
longer object length is not a multiple of shorter object length
我在做什么错?还有其他简洁的方法可以做同样的事情吗?
答案 0 :(得分:1)
尝试:
top12 <- filter(df, to %in% summary$to[1:12])