我正在使用一个朋友在上个月发送的所有Snapchat的索引。它位于帧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
我做错了什么?还有什么更简洁的方法来做同样的事情吗?
尝试:
top12 <- filter(df, to %in% summary$to[1:12])