R:如何制作一个 for 循环,在新变量中的几列(变量)上执行公式
R: How to make a for loop that performs a formula over a few columns (variables) in a new variable
是否可以在数据框中创建一个 for 循环,为存储在新 variable/column 中的每一行生成一个结果值(即 3 列(变量)X、Y 和 Z。根据这些变量中同一行的值,为每一行生成值 A)。
例如我想做 0.5X * 1.2Y + 0.75Z 并将值放在新列中,然后对所有行循环相同的公式
提前致谢!
这将是 R
中的矢量化选项 - 不需要循环
df$new <- with(df, (0.5 * X) * (1.2 * Y) + (0.75 *Z))
一个dplyr
选项:
library(dplyr)
df %>%
mutate(new = 0.5*X*1.2*Y+0.75*Z)
输出:
X Y Z new
1 1 3 5 5.55
2 4 2 2 6.30
3 2 5 1 6.75
数据
df <- data.frame(X = c(1,4,2),
Y = c(3,2,5),
Z = c(5,2,1))
是否可以在数据框中创建一个 for 循环,为存储在新 variable/column 中的每一行生成一个结果值(即 3 列(变量)X、Y 和 Z。根据这些变量中同一行的值,为每一行生成值 A)。
例如我想做 0.5X * 1.2Y + 0.75Z 并将值放在新列中,然后对所有行循环相同的公式
提前致谢!
这将是 R
中的矢量化选项 - 不需要循环
df$new <- with(df, (0.5 * X) * (1.2 * Y) + (0.75 *Z))
一个dplyr
选项:
library(dplyr)
df %>%
mutate(new = 0.5*X*1.2*Y+0.75*Z)
输出:
X Y Z new
1 1 3 5 5.55
2 4 2 2 6.30
3 2 5 1 6.75
数据
df <- data.frame(X = c(1,4,2),
Y = c(3,2,5),
Z = c(5,2,1))