2013-05-06 2 views
1

Я полагаю, что для этого есть простая функция, но я не могу ее найти. У меня есть пять столбцов в более крупном фрейме данных, который я хочу добавить, чтобы получить одну сумму. Вот что я сделал, но мне интересно, если есть более простой способ, чтобы получить тот же результат:Получите одну сумму из нескольких столбцов

count <- subset(NAMEOFDATA, select=c(COL1,COL2,COL3,COL4,COL5)) 
colcount <- as.data.frame(colSums(count)) 
colSums(colcount) 

ответ

3

Сумма функция должна сделать:

sum(count) 

в отличие от «+», который векторизации, sum «сворачивает» свои аргументы, и он будет принимать data.frame аргумент. Если некоторые аргументы логичны, то TRUE == 1 и FALSE == 0 для целей суммирования, что делает конструкцию sum(is.na(x)) полезной.

+0

ha! Я знал, что должен быть простой способ. Это вопросы, с которыми сталкиваются на ранних этапах перехода SAS -> R. Благодаря! – ktalent1

+0

Да, и если вы исходите из SAS или SPSS, вы должны обратить особое внимание на то, как пропущенные значения обрабатываются по-разному. –

0

Всегда проще с воспроизводимым, например, но вот попытка:

apply(NAMEOFDATA[,paste0("COL",seq(5))], 1, sum) 
Смежные вопросы