我正在尝试使用 dplyr 解决 R 中的以下问题: 我有两个数据框。 在第一个数据框中,我有 ID,对于每个 ID,我都有一个排名和另一列带有数值。 data_frame_1
# ID ranking value
# 1 0 0.25
# 2 2 0.5
# 3 1 0.3
另一个数据框有点像一个矩阵,它在列和行上的排名从 0:2 开始,并包含数值。 data_frame_2
# 0 1 2
0 0.5 0.3 0.2
1 0.4 0.22 0.1
2 0.4 0.3 0.27
我的行也包含排名,所以行名<-c(0:2) What I want to do is: ID 1 has ranking 0. I want to look up if the ranking is correct, by looking in the other dataframe: since ID1 has ranking 0 I want to look in the row with name "0" and say if value>=行中的条目,然后给出新的排名,即列名。 所以我想做的是改变我的第一个 data_frame 上的新排名
我试过这样的事情: data_frame_1%>%mutate(new_ranking=case_when(value>=data_frame_2["ranking",])~colnames[which(value>=data_frame_2["ranking",])].
我希望得到的结果是这样的:
# ID ranking value new_ranking
# 1 0 0.25 2
# 2 2 0.5 0
# 3 1 0.3 1
我知道这不是解决问题的正确方法。
有人能解决这个问题吗?