【发布时间】:2020-08-16 18:18:19
【问题描述】:
给定这样的数据框:
df <- data.frame(ID = seq(1,8),
rank1 = c("apple", "NA", "banana", "kiwi", "peach", "kiwi", "kiwi", "grape"),
rank2 = c('mango', 'NA', 'date', 'grape', 'kiwi', 'apple', 'pear', 'NA'),
rank3 = c('kiwi', 'NA', 'apple ', 'peach', 'banana', 'NA', 'mango', 'NA'))
ID rank1 rank2 rank3
1 1 apple mango kiwi
2 2 NA NA NA
3 3 banana date apple
4 4 kiwi grape peach
5 5 peach kiwi banana
6 6 kiwi apple NA
是否可以将值转换为变量并根据它们的等级分配一个值?
我想要这样的输出:
ID apple mango kiwi banana date grape peach pear
1 1 rank1 rank2 rank3 NA NA NA NA NA
2 2 NA NA NA NA NA NA NA NA
3 3 rank3 NA NA rank1 rank2 NA NA NA
4 4 NA NA rank1 NA NA rank2 rank3 NA
5 5 NA NA rank2 rank3 NA NA rank1 NA
6 6 rank2 NA rank1 NA NA NA NA NA
如何使用以下公式为排名位置分配权重:n-r+1(n = 标准数量,r = 排名位置)?
【问题讨论】:
-
我看到了你的输入,也看到了你想要的输出,这一切看起来都很好,也很有意义。但是你说“如何使用公式为排名位置分配权重:n-r+1(n = 标准数量,r = 排名位置)?”,这不是有道理。这已经是您想要的输出的一部分,我看不到吗?或者您是否还有其他想要的输出没有显示?
-
条件数是您的第二个数据集中的水果列数吗?
-
我很抱歉描述不好。例如在第 3 行有 3 个水果排名,这是标准的数量。在这里,我会为“苹果”分配 3-3+1=1 的权重,为第 6 行分配 2-2+1=1 的权重。