gpt4 book ai didi

r - 按R中的多个条件排列

转载 作者:行者123 更新时间:2023-12-01 07:59:54 26 4
gpt4 key购买 nike

具有以下数据集:

test <- data.frame(name= c("A", "B", "C", "D", "E"), v1 = c(2, 4, 1, 1, 2), v2 = c(3, 4, 2, 1, 5))

name v1 v2
A 2 3
B 4 4
C 1 2
D 1 1
E 2 5

我想测试参与者/节点支配的概念,这意味着对于每一行/条目,我想看看它是否在数据集中具有最高值。例如,对于 v1 和 v2,B 都高于 A、C 和 D。所以它“支配”了所有其他行。例如,E 仅高于 A、C 和 D,因此它支配这 3 行。

从数学上讲,我要搜索的是 i >= j,因为 v1_i >= v1_j 和 v2_i >= v2_j。

按列排列或排序不起作用,因为它并没有真正显示一行将如何强加另一行,因为它首先按一列排序,然后再按另一列排序。

编辑:只是添加一个示例,最终输出将是:

B dominates A, C, D
E dominates A, D, C
C dominates D
A dominates C, D

它看起来如何并不重要。如果它是有向网络/矩阵的形式,或者是一个包含所有字母的变量的表。

最佳答案

我有一个出路希望这会有所帮助:)

 c$v3= rowSums(x = c[,-1])
c = c[order(c$v3,decreasing = T),]
k = length(c$name)
for (i in 1:k ) {
if (i == k) {

}else {
a = c$name[i+1:k]
a = as.character(a[!is.na(a)])
b = c$name[i]
b = as.character(b[!is.na(b)])

cat(b,"greater than ", a,"\n",sep=" ")
}

}

所以你的输出将是

 B greater than  E A C D 
E greater than A C D
A greater than C D
C greater than D

关于r - 按R中的多个条件排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56273029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com