我是R的新手,而我正试图弄清楚如何对以下输出中的行进行求和。
u <- c(1,2,3)
x <- lapply(u, replicate, rbinom(10,1,.5))
当我这样做时,x等于
[[1]]
[,1]
[1,] 0
[2,] 0
[3,] 1
[4,] 1
[5,] 0
[6,] 1
[7,] 1
[8,] 1
[9,] 1
[10,] 0
[[2]]
[,1] [,2]
[1,] 0 1
[2,] 0 1
[3,] 1 0
[4,] 1 1
[5,] 1 1
[6,] 1 1
[7,] 1 1
[8,] 1 0
[9,] 1 0
[10,] 0 0
[[3]]
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 1 1
[3,] 1 0 1
[4,] 1 0 1
[5,] 0 0 1
[6,] 0 0 1
[7,] 0 1 0
[8,] 1 1 1
[9,] 0 1 1
[10,] 0 1 1
当我使用编码时
rowSums(x)
或
rowSums(x[2])
我收到此错误
Error in rowSums(x) : 'x' must be an array of at least two dimensions
如何对行进行求和?还有,有办法打破表格,以便我可以做个别分析。最好是一种非手动的方式,所以如果我有100多张桌子,我可以使用它
答案 0 :(得分:2)
使用lapply()
可以方便地执行列表中各个元素的循环。你可以试试这个:
lapply(x, rowSums)
#[[1]]
# [1] 0 1 0 1 1 0 1 1 1 0
#
#[[2]]
# [1] 2 1 2 2 1 2 1 1 0 1
#
#[[3]]
# [1] 1 1 2 1 1 0 1 1 1 1
数据:强>
u <- c(1,2,3)
set.seed(123)
x <- lapply(u, replicate, rbinom(10,1,.5))