每行值和常量值的标准偏差

时间:2016-05-10 14:21:38

标签: r

N <- c(1,3,4,6)
a <- c(3,4,5,6)
b <- c(4,5,6,7)
w <- c(5,6,7,6)
dat1 <- data.frame(N,May = a, April = b,June = w)

    N May April June
1    1   3     4    5
2    3   4     5    6
3    4   5     6    7
4    6   6     7    6

我需要一个数据框,其中每个值都是s值为N值和行值

sd(c(1,3) sd(c(1,4) sd(c(1,5) # for 1st row
sd(c(3,4) sd(c(3,5) sd(c(3,6) # for second and so on.

2 个答案:

答案 0 :(得分:0)

试试这个:

数据:

Norm <- c(1,3,4,6)
a <- c(3,4,5,6)
b <- c(4,5,6,7)
w <- c(5,6,7,6)
mydata <- data.frame(Norm=Norm,May = a, April = b,June = w)

解决方案:

finaldata <- do.call('cbind',lapply(names(mydata)[2:4], function(x) apply(mydata[c("Norm",x)],1,sd)))

我希望它有所帮助。

建议:

请不要使用datanorm等名称作为变量名称。它们很容易与R本机的事物冲突。例如norm是R中的函数,data也是如此。

答案 1 :(得分:0)

我想我明白了

x=matrix(data=NA, nrow=4, ncol=3)
for(j in 1:3){
  for(i in 1:4){
  x[i, j] <-  sd(data[i, c(i,(j+1))])
  x
  }
}