sum two columns in R

前端 未结 6 1647
情书的邮戳
情书的邮戳 2020-12-03 14:00

I feel a bit embarrassed as I am trying to add two columns in R to get the product.

I have tried

sum(col1,col2)

but this returns

相关标签:
6条回答
  • 2020-12-03 14:38

    You can do this :

        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 ))
    
    0 讨论(0)
  • 2020-12-03 14:39
    tablename$column3=rowSums(cbind(tablename$column1,tablename$column2),na.rm=TRUE)
    

    This can be used to ignore blank values in the excel sheet.
    I have used for Euro stat dataset.

    This example works in 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)  
    
    0 讨论(0)
  • 2020-12-03 14:45

    Try this for creating a column3 as a sum of column1 + column 2 in a table

    tablename$column3=rowSums(cbind(tablename$column1,tablename$column2))
    
    0 讨论(0)
  • 2020-12-03 14:47

    The sum function will add all numbers together to produce a single number, not a vector (well, at least not a vector of length greater than 1).

    It looks as though at least one of your columns is a factor. You could convert them into numeric vectors by checking this

    head(as.numeric(data$col1))  # make sure this gives you the right output
    

    And if that looks right, do

    data$col1 <- as.numeric(data$col1)
    data$col2 <- as.numeric(data$col2)
    

    You might have to convert them into characters first. In which case do

    data$col1 <- as.numeric(as.character(data$col1))
    data$col2 <- as.numeric(as.character(data$col2))
    

    It's hard to tell which you should do without being able to see your data.

    Once the columns are numeric, you just have to do

    data$col3 <- data$col1 + data$col2
    
    0 讨论(0)
  • 2020-12-03 14:49

    You can use a for loop:

    for (i in 1:nrow(df)) {
       df$col3[i] <- df$col1[i] + df$col2[i]
    }
    
    0 讨论(0)
  • 2020-12-03 14:53

    It could be that one or two of your columns may have a factor in them, or what is more likely is that your columns may be formatted as factors. Please would you give str(col1) and str(col2) a try? That should tell you what format those columns are in.

    I am unsure if you're trying to add the rows of a column to produce a new column or simply all of the numbers in both columns to get a single number.

    0 讨论(0)
提交回复
热议问题