I have a large data frame in which I am multiplying two columns together to get another column. At first I was running a for-loop, like so:
for(i in 1:nrow(df)){
df$new_column[i] <- df$column1[i] * df$column2[i]
}
but this takes like 9 days.
Another alternative was plyr
, and I actually might be using the variables incorrectly:
new_df <- ddply(df, .(column1,column2), transform, new_column = column1 * column2)
but this is taking forever
Use the * operator to multiply a column by a constant number Select a column of DataFrame df using syntax df["column_name"] and set it equal to n * df["column_name"] where n is the number to multiply by.
For this task, we can use the $ and * operators as shown below. The $ operator extracts the values of the column that we want to multiply, and the * operator telly R that we want to multiply the values before the * sign by the values after the * sign.
The mul() method multiplies each value in the DataFrame with a specified value. The specified value must be an object that can be multiplied with the values of the DataFrame.
As Blue Magister said in comments,
df$new_column <- df$column1 * df$column2
should work just fine. Of course we can never know for sure if we don't have an example of the data.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With