r - 如何对数据帧上的每个第 n 列的第 n 行元素进行多个统计
问题描述
我需要每行中的每 7 个元素作为第一列总和;对于第二列总和,对于第三列 min,对于第四列 max,并获得从数据框的第 3 列到第 48 列的过程,这里命名为 dataset,实际上有 50 列和 84 行。我希望得到一个包含 12 行和 48 列的数据框,其中每个行元素是 84 行中每行中每 7 个元素的统计信息(按列重复顺序:总和、总和、最小最大值)。我认为问题可能出在 i 行的 for 循环中,可能是?
k=data.frame(matrix(nrow = 12,ncol = 48));
for (i in 1:12) {
for (j in 1:12) {
k[i,4*j-3]=apply(dataset[ i:7,4*j-1], 2,sum)
k[i,4*j-2]=apply(dataset[ i:(i+7),4*j], 2,sum)
k[i,4*j-1]=apply(dataset[ i:(i+7),4*j+1], 2,min)
k[i,4*j]=apply(dataset[ i:(i+7),4*j+2], 2,max)
}
};
解决方案
像这样的东西?
stats <- NULL
for (i in 1:ncol(data)) {
if (any(seq(1, ncol(data), by = 7) == i))) {
stats[i] <- sum(data[,i])
} else {
if (any(seq(2, ncol(data), by = 7) == i))) {
stats[i] <- sum(data[,i])
} else {
if (any(seq(3, ncol(data), by = 7) == i))) {
stats[i] <- min(data[,i])
} else {
stats[i] <- max(data[,i])
}
}
}
}
推荐阅读
- c++ - 递归模板解释 C++
- mysql - 无法使用 PHP7.0 和 Apache2(2 个不同的 VM)连接到 Mysql DB
- javascript - JavaScript 日期集未按预期工作。如何解决?
- android - AAPT:错误:找不到属性 android:killAble
- r - 如何在 R 中用所需值填充一列,用 0 填充另一列
- python - 我下载了 Anaconda,但没有任何程序(anaconda 提示符或开始菜单中的任何其他内容)不会显示
- javascript - 数组迭代和pop()
- c# - 在 Word 应用程序中插入新行
- java - 需要帮助来解决问题……没有得到想要的输出。我想输入两个银行详细信息并希望输出相同的信息
- flow - 无需重启节点服务器即可刷新流程