сумма переменных в R-кадре данных - PullRequest
7 голосов
/ 11 марта 2012

Извините, я уверен, что подобный вопрос уже задавался, но я боюсь, что не могу его найти. Я просто хочу суммировать много переменных в рамках данных. В качестве небольшого примера я хотел бы рассчитать df $ e, как показано ниже.

df <- data.frame(a=c(1,2,3,4,5), b=(c(6,7,8,9,10)), 
                 c=c(1,2,3,4,5), d=(c(6,7,8,9,10)))

df$e <- with(df, a+b+c+d) # this is the right answer

Но я хочу выразить это, говоря: df $ e <- «сумма всех переменных между a и d». </p>

Спасибо! Помощь также приветствуется в тегах.

ОТВЕТ: df$e <- rowSums(subset(df, select=a:d))

Я не говорил, что мне это нужно очень четко, но я не знал о subset, как о rowSums.

Ответы [ 2 ]

10 голосов
/ 11 марта 2012

Вы ищете rowSums()?

> df <- data.frame(a=c(1,2,3,4,5), b=(c(6,7,8,9,10)), 
+                  c=c(1,2,3,4,5), d=(c(6,7,8,9,10)))
> with(df, a+b+c+d)
[1] 14 18 22 26 30
> rowSums(df)
[1] 14 18 22 26 30
> 

, который вы, конечно, также можете назначить обратно в df:

> df$e <- rowSums(df)
> df
  a  b c  d  e
1 1  6 1  6 14
2 2  7 2  7 18
3 3  8 3  8 22
4 4  9 4  9 26
5 5 10 5 10 30
> 
3 голосов
/ 11 марта 2012

Вы ищете способ явно не выписывать a + b + c + d + ...?

Если так, как насчет rowSums()

df$e <- with(df, rowSums(df))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...