对R中的两列求和

对R中的两列求和,r,R,当我试图在R中添加两列以获得产品时,我感到有点尴尬 我试过了 sum(col1,col2) 但这又回来了 Error in Summary.factor(c(49L, 48L, 47L, 46L, 46L, 45L, 45L, 44L, 43L, : sum not meaningful for factors 我以为这会很简单!两个列都包含整数。可能是一个或两个列中有一个因子,或者更有可能是列的格式为因子。请您试一试str(col1)和str(col2)好吗?这将告诉您这些列的格式

当我试图在R中添加两列以获得产品时,我感到有点尴尬

我试过了

sum(col1,col2)
但这又回来了

Error in Summary.factor(c(49L, 48L, 47L, 46L, 46L, 45L, 45L, 44L, 43L,  : 
  sum not meaningful for factors

我以为这会很简单!两个列都包含整数。

可能是一个或两个列中有一个因子,或者更有可能是列的格式为因子。请您试一试str(col1)和str(col2)好吗?这将告诉您这些列的格式


我不确定您是想添加一列中的行以生成一个新列,还是只是简单地将两列中的所有数字相加以获得一个数字。

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试着在表中创建一个column3作为column1+column2的和

tablename$column3=rowSums(cbind(tablename$column1,tablename$column2))
这可用于忽略excel工作表中的空白值。
我已经使用了欧洲统计数据集

此示例适用于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)  
crime\u stat\u data$All\u盗窃您可以执行以下操作:

    df <- data.frame("a" = c(1,2,3,4), "b" = c(4,3,2,1), "x_ind" = c(1,0,1,1), "y_ind" = c(0,0,1,1), "z_ind" = c(0,1,1,1) )
df %>% mutate( bi  = ifelse((df$x_ind + df$y_ind +df$z_ind)== 3, 1,0 ))
df%变异(bi=ifelse((df$x_ind+df$y_ind+df$z_ind)==3,1,0))

您可以使用for循环:

for (i in 1:nrow(df)) {
   df$col3[i] <- df$col1[i] + df$col2[i]
}
for(1中的i:nrow(df)){
df$col3[i]#两种方式


df$New1%mutate(New2=rowsumes(.))

请在您的问题中包含dput(head(yourdata))
的结果。错误消息似乎相当有用。如果您不知道R中的因素是什么,那么您需要返回到介绍性文本并进行更多的自我研究。“我正在尝试在R中添加两列以获得产品”-嗯?
带(mtcars,总和(系数(mpg),系数(cyl))
带(mtcars,总和(mpg,cyl))
应该能帮你一点忙。Hi reuben,我想把第1列的第1单元格添加到第2列的第1单元格中,等等。你会如何处理其中一列中的NAs?你需要在添加之前用0替换它们吗?还是可以一次完成?这取决于你想如何处理NAs。如果你想让它们为零,你需要在任何时候都这样做在进行添加之前。此解决方案解决了NA值-重要性为了获得更好的阅读体验,最好将代码添加到代码括号中。欢迎使用SO:)
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)  
    df <- data.frame("a" = c(1,2,3,4), "b" = c(4,3,2,1), "x_ind" = c(1,0,1,1), "y_ind" = c(0,0,1,1), "z_ind" = c(0,1,1,1) )
df %>% mutate( bi  = ifelse((df$x_ind + df$y_ind +df$z_ind)== 3, 1,0 ))
for (i in 1:nrow(df)) {
   df$col3[i] <- df$col1[i] + df$col2[i]
}