【发布时间】:2023-03-14 05:00:01
【问题描述】:
我有一个带有文本列name 和因子city 的数据框。它按字母顺序首先由city 排序,然后是name。现在我需要得到一个数据框,它在每个city 中只包含第 n 个元素,保持这个顺序。没有循环怎么能漂亮地完成呢?
我有:
name city
John Atlanta
Josh Atlanta
Matt Atlanta
Bob Boston
Kate Boston
Lily Boston
Matt Boston
我想要一个函数,它通过city返回第n个元素,即,如果它是第3个,那么:
name city
Matt Atlanta
Lily Boston
如果超出所选city 的范围,即对于第4 个,它应该为name 返回NULL:
name city
NULL Atlanta
Matt Boston
请只使用基础 R 吗?
【问题讨论】:
-
你能举一个可重现的例子吗?比如说,展示一个与您拥有的类似的简短示例数据框,另一个展示您希望它变成什么?
-
with
plyr:ddply(yourdata, .(city), function(x, n) x[n,], n=10)但是如果您选择的n大于城市的条目数怎么办? -
这可以使用 dplyr 完成吗?
标签: r