Добавьте два или более столбцов в один с помощью sum

#r

#r

Вопрос:

Структура входных данных

 data.frame(id = c(1,2,3), name = c(0,1,0) col = c(1,1,0), another = c(1,2,0))
  

Какая команда может добавить два (или более) столбца и создать новый, где сумма больше, чем один add 1?

Вот пример результата, добавьте столбцы с именами name и col из df и создайте новый столбец с именем combine:

 data.frame(id = c(1,2,3), combine = c(1,1,0), another = c(1,2,0))
  

Комментарии:

1. Попробуйте as.integer(rowSums(d1[c('name', 'col')]) > 0)

Ответ №1:

Используя rowSums .

 c.col <- c("name", "col")
res <- data.frame(combine= (rowSums(d[c.col]) > 0), d[!names(d) %in% c.col])
res
#   combine id another
# 1       1  1       1
# 2       1  2       2
# 3       0  3       0

res <- res[c(2, 1, 3)]  ## order columns if needed
#   id combine another
# 1  1       1       1
# 2  2       1       2
# 3  3       0       0
  

Данные:

 d <- structure(list(id = c(1, 2, 3), name = c(0, 1, 0), col = c(1, 
1, 0), another = c(1, 2, 0)), class = "data.frame", row.names = c(NA, 
-3L))
  

Комментарии:

1. спасибо, возможно ли сделать это с именами столбцов, а не с местом во фрейме данных?