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