如何做明智的累计和?
X3 X4 X5 X6 X7 X8 X9
-63.2929 -64.9519 -65.9586 -65.2485 -63.3387 -56.749 -51.7419
-68.7098 -70.2028 -71.329 -70.5252 -68.7843 -63.0799 -58.7491
58.3993 -60.0864 -60.7925 -59.6933 -57.2357 49.8444 44.1056
-57.8334 59.6063 60.3079 -59.1852 -56.6365 -49.2706 -43.5538
-37.6082 -39.6347 -39.6647 38.4396 34.9498 -26.6984 -21.9614
37.2886 39.0565 -38.8722 -37.5427 -33.969 25.9074 21.7712
-61.972 -63.0513 63.5082 -62.2337 59.7711 -54.2189 -51.6613
-60.5783 -61.6254 -61.9812 -60.6696 58.066 -52.4656 -49.9653
从上面的矩阵我想找到最大和最小单元格列明智的单元格,然后做每两个邻居的明智的累计和。例如;对于第1列,最小值为-68.70(识别单元格)并添加(-70.2028和-71.329)等等,最小值和最大值相同。我会怎么做?如何做明智的累计和?
data=read.table('test.csv', header=TRUE, sep=',')
matrix=data.matrix(data)
这是你在找什么? (警告:使用不良编码做法的hack-y回答)
data = read.table(text = "X3 X4 X5 X6 X7 X8 X9
-63.2929 -64.9519 -65.9586 -65.2485 -63.3387 -56.749 -51.7419
-68.7098 -70.2028 -71.329 -70.5252 -68.7843 -63.0799 -58.7491
58.3993 -60.0864 -60.7925 -59.6933 -57.2357 49.8444 44.1056
-57.8334 59.6063 60.3079 -59.1852 -56.6365 -49.2706 -43.5538
-37.6082 -39.6347 -39.6647 38.4396 34.9498 -26.6984 -21.9614
37.2886 39.0565 -38.8722 -37.5427 -33.969 25.9074 21.7712
-61.972 -63.0513 63.5082 -62.2337 59.7711 -54.2189 -51.6613
-60.5783 -61.6254 -61.9812 -60.6696 58.066 -52.4656 -49.9653", header = T)
sapply(1:(ncol(data)-2), function(x) {c(sum(data[c(which.min(data[,x])),x:(x+2)]),
sum(data[c(which.max(data[,x])),x:(x+2)]))})
[,1] [,2] [,3] [,4] [,5]
[1,] -210.2416 -212.057 -210.6385 -202.3894 -190.6133
[2,] -62.4796 60.729 61.0456 46.6910 -46.1091
第一行min,第二行max。
这看起来是正确的,但是在找到列中的最小值和最大值之后,是否可以不管负值还是负值执行运行求和(累计求和)行? – Juvin 2015-01-22 03:28:02
minsum <- c()
maxsum <- c()
temp <- matrix(sample(c(-1,1),replace=T)*70*runif(70), ncol=7)
for(i in 1:(ncol(temp)-2)){
tmin <- which.min(temp[,i])
tmax <- which.max(temp[,i])
minsum <- c(minsum, temp[tmin,i+1] + temp[tmin,i + 2])
maxsum <- c(maxsum, temp[tmax,i+1] + temp[tmax,i + 2])
}
如果你知道结果向量将会是多长时间(你在这里做的),如果你先分配内存(而不是用'x 2015-01-20 22:30:15
该代码减去行中的负数,for exapmle如果最小值为-100,并且对应的行为+20,则输出为-80,是否有可能无论符号如何,以累加方式将行累加到明智行 – Juvin 2015-01-22 04:04:49
是的,我不知道我理解你的问题,但你可以改变minsum 2015-01-22 21:36:25
目前还不清楚预期产出应该如何。你能举个例子吗? – 2015-01-20 21:43:36