R: суммирование данных - PullRequest
0 голосов
/ 02 февраля 2011

Предположим, у меня есть два одинаковых data.frames

x1 <- data.frame(letters[1:26],1:26,1:26)
x2 <- data.frame(letters[1:26],1:26,1:26) 

Как мне создать новый фрейм данных, который добавляет 2-й столбец каждого фрейма данных вместе и 3-й столбец каждого фрейма данных вместе.

Так, что x3 [2] = c (2,4,6,8, ...)?

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Вы это имели в виду?

x1[2]+x2[3]
1 голос
/ 02 февраля 2011

Хотите:

> x3 <- data.frame(A = letters, S2 = x1[,2] + x2[,2], S3 = x1[,3] + x2[,3])
> head(x3)
  A S2 S3
1 a  2  2
2 b  4  4
3 c  6  6
4 d  8  8
5 e 10 10
6 f 12 12

Если это так, и вы хотите более общее решение, возможно, рассмотрите mapply:

> head(mapply(`+`, x1[,2:3], x2[2:3]))
     X1.26 X1.26.1
[1,]     2       2
[2,]     4       4
[3,]     6       6
[4,]     8       8
[5,]    10      10
[6,]    12      12

Использование этого для создания нового фрейма данныхс неизменным первым столбцом имеем:

> x3 <- data.frame(letters, mapply(`+`, x1[,2:3], x2[2:3]))
> head(x3)
  letters X1.26 X1.26.1
1       a     2       2
2       b     4       4
3       c     6       6
4       d     8       8
5       e    10      10
6       f    12      12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...