在R数据框中添加方差列

在R数据框中添加方差列,r,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 IA30

我有一个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

这个问题很模糊,没有提供一个例子

假设您的意思是行差异:

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

查看它是否工作

df是给定的数据帧

所需的输出将来自该行

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

您遇到了什么问题?看看应用函数。您希望如何将12个不同功能的差异聚合到一列中?@Tgsmith61591我想他指的是行差异?您应该能够将cbind、apply、var和na.rm=TRUE参数到var的各个部分组合在一起…接收以下错误:错误在[.data.frameDT,:=rowvars,rowSumsDT[,4:16,with=FALSE],:找不到函数:=您是否加载了data.table包,我对它进行了测试,它对我来说运行正常。中的错误[.data.tableDT,4:16,with=FALSE:j越界这是一个列索引错误。您确定有16列吗?您可以更改括号中的列号,使其适合您的实际列范围。我愚蠢地使用了错误的数据帧,这就是我收到越界错误的原因。此参数有效,但不适用t表示每个列中NA'值的变化量df[,4:16]:类型为“closure”的对象不可子集这工作得非常好!谢谢!不过我没有投票权