суммировать два столбца в R
Я чувствую себя немного смущенным, поскольку я пытаюсь добавить два столбца в R, чтобы получить продукт.
я пытался
sum(col1,col2)
но это возвращает
Error in Summary.factor(c(49L, 48L, 47L, 46L, 46L, 45L, 45L, 44L, 43L, :
sum not meaningful for factors
Я думал, это будет очень просто! оба столбца содержат целые числа.
Ответы
Ответ 1
Функция sum
добавит все числа вместе, чтобы создать одно число, а не вектор (ну, по крайней мере, не вектор длины больше 1).
Похоже, что хотя бы один из ваших столбцов является фактором. Вы можете преобразовать их в числовые векторы, проверив это
head(as.numeric(data$col1)) # make sure this gives you the right output
И если это выглядит правильно,
data$col1 <- as.numeric(data$col1)
data$col2 <- as.numeric(data$col2)
Возможно, вам придется сначала преобразовать их в символы. В этом случае
data$col1 <- as.numeric(as.character(data$col1))
data$col2 <- as.numeric(as.character(data$col2))
Трудно сказать, что вам следует делать, не имея возможности увидеть ваши данные.
Когда столбцы являются числовыми, вам просто нужно сделать
data$col3 <- data$col1 + data$col2
Ответ 2
Может быть, один или два из ваших столбцов могут иметь в себе фактор, или, что более вероятно, ваши столбцы могут быть отформатированы как факторы. Пожалуйста, дайте попробовать str (col1) и str (col2)? Это должно указать вам, в каком формате находятся эти столбцы.
Я не уверен, что вы пытаетесь добавить строки столбца, чтобы создать новый столбец или просто все числа в обоих столбцах, чтобы получить один номер.
Ответ 3
tablename$column3=rowSums(cbind(tablename$column1,tablename$column2),na.rm=TRUE)
Это можно использовать для игнорирования пустых значений в листе Excel.
Я использовал для набора данных Euro stat.
Этот пример работает в R:
crime_stat_data$All_theft <-rowSums(cbind(crime_stat_data$Theft,crime_stat_data$Theft_of_a_motorised_land_vehicle, crime_stat_data$Burglary, crime_stat_data$Burglary_of_private_residential_premises), na.rm=TRUE)
Ответ 4
Попробуйте создать столбец 3 в виде суммы столбца 1 + столбца 2 в таблице.
tablename$column3=rowSums(cbind(tablename$column1,tablename$column2))