#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. спасибо, возможно ли сделать это с именами столбцов, а не с местом во фрейме данных?