Search code examples
rdataframesubsetdata-manipulationcol

Need to subtract value of one column from all others; Can't figure out mistake in this line?


I need to take columns 3 to 14-1 and subtract value of column 14 from all of these:

labdata_snus_var[,3:ncol(labdata_snus_var)-1] <- labdata_snus_var[,14] - labdata_snus_var[,3:ncol(labdata_snus_var)-1]


Solution

  • You need to put () around ncol(...)-1.

    labdata_snus_var[,3:(ncol(labdata_snus_var)-1)] <- labdata_snus_var[,14] - labdata_snus_var[,3:(ncol(labdata_snus_var)-1)]
    

    In your example 3:ncol(labdata_snus_var)-1 you get a vector from 3 to 14 and each value will be decreased by one. The result is a vector from 2 to 13. The brackets around (ncol(labdata_snus_var)-1) means you substract one just from ncol(labdata_snus_var). So you get a vector from 3 to 13.