我是 R 的新手,所以我仍然对它的工作方式有所了解。我的问题如下,我有一个数据框和一个列的优先列表(pl
),我需要:
pl
从每一行的列中找到最大值并使用该值创建一个新列 (df$max
)- 使用优先级列表,从优先级值中减去这个最大值,忽略 NA 并返回绝对差
举个例子可能更好:我的优先级列表是
pl <- c("E","D","A","B")
数据框是:
A B C D E F G
1 15 5 20 9 NA 6 1
2 3 2 NA 5 1 3 2
3 NA NA 3 NA NA NA NA
4 0 1 0 7 8 NA 6
5 1 2 3 NA NA 1 6
因此,对于第一行,最大值来自 A 列(15),优先级值来自 D 列(9),因为 E 是 NA。我想要的答案应该是这样的。
A B C D E F G MAX MAX-PR
1 15 5 20 9 NA 6 1 15 6
2 3 2 NA 5 1 3 2 5 4
3 NA NA 3 NA NA NA NA NA NA
4 0 1 0 7 8 NA 6 8 0
5 1 2 3 NA NA 1 6 2 1