使用apply函数生成数据框

时间:2015-07-19 17:58:30

标签: r

我是R的新手,我正在尝试将每个数据框列作为实例处理,以将每个实例作为数据框中的列返回:

conFun <- function(x){
  t <- x[2]
  c <- x[3:8]
  c <- c[c != ""]
  w <- c(t,c)
  w <- paste(w, "H2", sep = "")

  tre <- data[, w[1]]
  con <- data[, w[-1]]

  if(length(c) > 2){
    mcon <- rowMeans(con)
  }
  else{
    mcon <- con
  }

  tre2con <- as.data.frame(mcon-tre) 
  names(tre2con) <- paste("inst_", x[1], sep = "")
  tre2con
}

res <- as.data.frame(apply(tre_con[1,], 1, conFun))
res

inst_1
2.27
-1.37
3.00
1.46

当我只调用res <- as.data.frame(apply(tre_con[1,], 1, conFun))一行tre_con数据框时,它工作正常。

但是当我调用res <- as.data.frame(apply(tre_con[3,], 1, conFun)) 3行tre_con时,它只返回最后一行的值,如下所示:

res

inst_3
5.12
1.34
4.50
2.36

而不是:

inst_1  inst_2  inst_3
2.27    9.22    5.12
-1.37   2.14    1.34
3       6.12    4.5
1.46    -1.36   2.36

我如何使用apply实现这一目标?或者我是否必须更改申请家庭功能?

0 个答案:

没有答案