2016-10-07 2 views
0

Я хочу подытожить группу столбцов из df1суммирующих столбцов в кадре данных на основе значений, хранящихся в другом фрейме данных в R

df1 
    | A  | B  | C  | D 
    | ------ | ------ | ------ | ------ 
1 | 0.870 | 0.435 | 0.968 | 0.679 
2 | 0.456 | 0.259 | 0.906 | 0.467 
3 | 0.298 | 0.256 | 0.457 | 0.768 
4 | 0.994 | 0.987 | 0.365 | 0.765 

, если их имена столбцов отображаются в виде значений в колонке под названием TEST в df2

df2 
    | test | 
    | ------ | 
1 | A  | 
2 | B  | 

Я пытался использовать followign код, но я получаю ошибку ниже

columns.to.add <- unique(df2$test) 
df2$test <- colSums(columns.to.add) 

ошибок в базе :: colSums (х, na.rm = na.rm, тускнеет = тускнеет, ...): 'х' должен быть массивом, по меньшей мере, двух измерений

+0

Извините, вы можете предположить, что все они в нижнем регистре. Это моя ошибка при компиляции вопроса –

ответ

1

$ не будет работать в вашем случае. Вы должны использовать индексирование по именам столбцов:

colSums(df1[, df2$test]) 
+1

Чтобы быть безопасным 'as.character (df2 $ test)' – akrun

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

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