r-难以对data.frame应用()过滤器()

时间:2018-06-20 09:09:15

标签: r filter apply

早上好

我很难找到解决方法:

我的数据框具有随时间(行)排名(值)的数千个实体(列):

Year Entity1 Entity2 ... EntityN
2001   1302     36    ...   1
2002    2       576   ...  1101

我正在尝试找到一种方法,如果可能的话,仅输出一年中排名前3位的实体,以实体名称作为值,将等级作为列名称,以输出新的数据框。

我一直在玩这样的游戏,但无济于事:

library(dplyr)
newdf <- apply(mydata, 1, function(x) filter(x, values > 3)

如果有人有任何见识,将非常欢迎!

1 个答案:

答案 0 :(得分:1)

添加我的评论作为答案: dplyr::filter将data.frame作为输入,但是apply函数将每一行转换为数字向量。试试:

apply(mydata, 1, function(x) names(x)[x>3])