早上好
我很难找到解决方法:
我的数据框具有随时间(行)排名(值)的数千个实体(列):
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)
如果有人有任何见识,将非常欢迎!
答案 0 :(得分:1)
添加我的评论作为答案:
dplyr::filter
将data.frame作为输入,但是apply
函数将每一行转换为数字向量。试试:
apply(mydata, 1, function(x) names(x)[x>3])