在R数据框中添加方差列

时间:2016-03-29 17:00:07

标签: r

我有一个包含16列的数据框,我希望在末尾添加一列,列4-16的行方差。这也会忽略NA值。

数据看起来像这样:

Chr  Position  end  IA3023  Nam6  Nam9 ...
18    1        2    0.5     0.5   0.5
18    2        3    0       0.25  0.5
18    3        4    0.5     0.3   0.25

希望在最后一栏中添加行差异:

Chr  Position  end  IA3023  Nam6  Nam9 ...   RowVariance
18    1        2    0.5     0.5   0.5        0
18    2        3    0       NA    0.5        0.125
18    3        4    0.5     0.3   0.25       0.0175

2 个答案:

答案 0 :(得分:1)

嗯,问题非常模糊,并没有提供一个例子。

假设你的意思是行差异:

library(data.table)
DT <- data.table(df)
DT[, rowvars := .(rowSums(DT[, 4:16, with = FALSE], na.rm = TRUE)^2/(13-1))]

看看它是否有效

答案 1 :(得分:1)

df是给定的数据框

所需的输出将来自此行

     cbind(df, var = apply(df[,4:16], 1, function(x) var(na.omit(x))))