gpt4 book ai didi

r - 使用 R 中的新列对总和和排名进行排序和计算

转载 作者:行者123 更新时间:2023-12-04 11:39:59 25 4
gpt4 key购买 nike

我有 200 列,想计算均值和排名,然后生成列。这是一个数据示例

df<-read.table(text="Q1a    Q2a Q3b Q4c Q5a Q6c Q7b
1 2 4 2 2 0 1
3 2 1 2 2 1 1
4 3 2 1 1 1 1",h=T)

我想对每一行的 a、b 和 c 求和,然后将它们相加。接下来我想计算每一行的排名。我想生成下表:

Q1a Q2a Q3b Q4c Q5a Q6c Q7b a   b   c   Total   Rank
1 2 4 2 2 0 1 5 5 2 12 2
3 2 1 2 2 1 1 7 2 3 12 2
4 3 2 1 1 1 1 8 3 2 13 1

最佳答案

library(dplyr)

df %>%
cbind(sapply(c('a', 'b', 'c'), function(x) rowSums(.[, grep(x, names(.)), drop=FALSE]))) %>%
mutate(Total = a + b + c,
Rank = match(Total, sort(Total, decreasing = T)))

输出是:

  Q1a Q2a Q3b Q4c Q5a Q6c Q7b a b c Total Rank
1 1 2 4 2 2 0 1 5 5 2 12 2
2 3 2 1 2 2 1 1 7 2 3 12 2
3 4 3 2 1 1 1 1 8 3 2 13 1

示例数据:

df <- structure(list(Q1a = c(1L, 3L, 4L), Q2a = c(2L, 2L, 3L), Q3b = c(4L, 
1L, 2L), Q4c = c(2L, 2L, 1L), Q5a = c(2L, 2L, 1L), Q6c = c(0L,
1L, 1L), Q7b = c(1L, 1L, 1L)), class = "data.frame", row.names = c(NA,
-3L))

关于r - 使用 R 中的新列对总和和排名进行排序和计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50308825/

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