I want to use mutate() in a for loop, attaching columns with column names like:
y_1 y_2 y_3
Here are my codes:
table1 <- tibble(
x = rep(1:3, each = 1)
)
table1
# A tibble: 3 x 1
x
<int>
1 1
2 2
3 3
table2 <- tibble(
a1 = c(10, 20),
a2 = c(30, 60)
)
table2
# A tibble: 2 x 2
a1 a2
<dbl> <dbl>
1 10 30
2 20 40
compute_y <- function(table1, table2){
table2[1] + table2[2] * table1$x
}
for (i in 1:nrow(table2)){
output = compute_y(table1, as.numeric(table2[i,]))
label = str_c("y_", i)
table1 <- mutate(table1, label = output)
}
table1
# A tibble: 3 x 2
x label
<int> <dbl>
1 1 80
2 2 140
3 3 200
What do I need to do to get:
table1
# A tibble: 3 x 2
x y_1 y_2
<int> <dbl> <dbl>
1 1 40 80
2 2 70 140
3 3 100 200