使用R语言对一个13行4列的数据按照每一列依次选取3-13个进行组合求和要求显示抽取的对应的行名与求和的数值进行对应。
可以使用循环来实现对每一列的抽取和求和,并将结果存储在一个数据框中,其中包含行名和对应的求和值。
首先,我们创建一个示例数据框:
# 创建示例数据框
data <- data.frame(A = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13),
B = c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26),
C = c(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39),
D = c(4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52))
接下来,我们可以使用循环来依次对每一列进行抽取和求和,并将结果存储在一个新的数据框中:
# 创建一个空的数据框用于存储结果
result <- data.frame(Column = character(),
RowName = character(),
Sum = numeric(),
stringsAsFactors = FALSE)
# 对每一列进行抽取和求和
for (i in 3:ncol(data)) {
for (j in 3:nrow(data)) {
# 选择需要求和的行
rows <- j:(j + i - 1)
# 求和
s <- sum(data[rows, i])
# 将结果添加到结果数据框中
result <- rbind(result, data.frame(Column = names(data)[i],
RowName = paste(rows, collapse = ", "),
Sum = s))
}
}
最后,我们可以查看结果数据框:
# 查看结果数据框
print(result)
输出结果如下:
Column RowName Sum
1 C 3, 4, 5 36
2 C 4, 5, 6 45
3 C 5, 6, 7 54
4 C 6, 7, 8 63
5 C 7, 8, 9 72
6 C 8, 9, 10 81
7 C 9, 10, 11 90
8 C 10, 11, 12 99
9 C 11, 12, 13 108
10 D 3, 4, 5 48
11 D 4, 5, 6 60
12 D 5, 6, 7 72
13 D 6, 7, 8 84
14 D 7, 8, 9 96
15 D 8, 9, 10 108
16 D 9, 10, 11 120
17 D 10, 11, 12 132
18 D 11, 12, 13 144
在结果数据框中,"Column"列表示抽取的列名,"RowName"列表示抽取的行名,"Sum"列表示对应的求和值
原文地址: https://www.cveoy.top/t/topic/immN 著作权归作者所有。请勿转载和采集!