我想要在删除该选择中的最小值和最大值之后,计算数据框中每行的标准偏差。这里有一个例子:R:在删除最小值和最大值之后,通过选择的列计算每行中的标准差
set.seed(1)
dat <- data.frame(matrix(sample(c(1:100), 10, replace=TRUE), ncol=5))
我设法计算我的兴趣列的SD(1:4)的每一行:
dat <- transform(dat, sd = apply(dat[,1:4], 1, sd))
show(dat)
X1 X2 X3 X4 X5 sd
1 27 58 21 95 63 33.95463
2 38 91 90 67 7 24.93324
但是,我无法弄清楚如何排除min(dat[1,1:4])
和max(dat[1,1:4])
,然后计算sd()
。 结果应该是这样的:
X1 X2 X3 X4 X5 sd
1 27 58 21 95 63 21.92031 # notice: sd calculated by hand using 'sd(c(27,58))'
2 38 91 90 67 7 16.26346 # notice: sd calculated by hand using 'sd(c(67,90))'
有人可以帮助我?
你有什么期望是'C的结果(2,2,3,4,20,20)'?请编辑你的问题! – jogo
@jogo我在我的数据中有很多小数,所以你的情况下,有相同的值不会成为一个问题。 – piptoma