我想弄清楚如何在R中解决这个等式:
arithmetic mean of object means K
在变量X中,我的数据是安全的,并附加行的列意味着。
X$rowMeans <- rowMeans(X, na.rm = TRUE);
致电X
V1 V2 V3 V4 V5 V6 V7 V8 V9 rowMeans
1 6 8 3 4 4 NaN NaN NaN NaN 5.000000
2 6 9 4 9 5 6 9 10 8 7.333333
3 9 4 10 NaN NaN NaN NaN NaN NaN 7.666667
因为我需要NaN的数量及其在矩阵X中的位置来计算K我想到了一个列表。在stackoverflow的某个地方,我发现了以下内容:
Counter <- 0
Result <- list(NULL)
Size <- 1
AddItemDoubling <- function(item){
if( .GlobalEnv$Counter == .GlobalEnv$Size )
{
length(.GlobalEnv$Result) <- .GlobalEnv$Size <- .GlobalEnv$Size * 2
}
.GlobalEnv$Counter <- .GlobalEnv$Counter + 1
.GlobalEnv$Result[[.GlobalEnv$Counter]] <- item
}
并添加了
for(i in 1:9){
AddItemDoubling(which(!is.na(X[i])))
}
调用结果
[[1]]
[1] 1 2 3
[[2]]
[1] 1 2 3
[[3]]
[1] 1 2 3
[[4]]
[1] 1 2
[[5]]
[1] 1 2
[[6]]
[1] 2
[[7]]
[1] 2
[[8]]
[1] 2
[[9]]
[1] 2
[[10]]
NULL
[[11]]
NULL
[[12]]
NULL
[[13]]
NULL
[[14]]
NULL
[[15]]
NULL
[[16]]
NULL
看起来很棒!我可以使用Result [4]来获取
[[1]]
[1] 1 2
将此应用于
sum(X$rowMeans[Result[i]])
由于错误消息“无效的下标类型'列表'”,让我陷入困境。
我想要得到类似的东西
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 6.666 6.666 6.666 6.166 6.166 7.333 7.333 7.333 7.333
任何帮助/提示都是适用的!