2016-07-18 5 views
-1

Я новичок в R, и я пытаюсь понять, как суммировать строки из следующего вывода.Summing Rows in Matrices, созданный lapply

u <- c(1,2,3) 
x <- lapply(u, replicate, rbinom(10,1,.5)) 

Когда я делаю это х равно

[[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

Вы ищете 'lapply (х, rowSums)'? Сохранение таких объектов, организованных в списках, обычно является предпочтительным методом в R. – lmo

ответ

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)) 

 Смежные вопросы

  • Нет связанных вопросов^_^