Это потому, что вы умножаете два кадра данных, а не векторы. Для иллюстрации приведу короткий пример:
head(cbind(mtcars, new_col = mtcars[1] * mtcars[2]))
Можно ожидать, что в данных будет новый столбец с именем new_col
, но вы получите
# mpg cyl disp hp drat wt qsec vs am gear carb mpg
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 126.0
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 126.0
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 91.2
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 128.4
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 149.6
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 108.6
mpg
, потому что это столбец имя mtcars[1]
(Try, head(cbind(mtcars, new_col = mtcars[2] * mtcars[1]))
), которое умножается первым.
Чтобы избежать этого, получайте данные как векторы. Итак,
head(cbind(mtcars, new_col = mtcars[[1]] * mtcars[[2]]))
# mpg cyl disp hp drat wt qsec vs am gear carb new_col
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 126.0
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 126.0
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 91.2
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 128.4
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 149.6
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 108.6
Следовательно, в вашем for
l oop использовании:
for (i in lt_1[c(1)]) {
print(
x = cbind(i, var_1 = rowSums(i[, 1:2]),
var_2 = rowMeans(i[, 1:3]),
var_3 = multiply_by(i[[1]], i[[2]]))
)
}
# x.1 x.2 x.3 y var_1 var_2 var_3
#1 89.510 93.741 113.766 1 183.25 99.006 8390.8
#2 94.791 90.991 98.196 1 185.78 94.660 8625.2
#3 116.232 106.637 84.323 1 222.87 102.398 12394.7
#4 89.299 103.003 97.393 1 192.30 96.565 9198.1
#10 86.656 101.626 118.714 1 188.28 102.332 8806.6
#13 106.344 103.055 93.797 1 209.40 101.065 10959.2
#15 107.936 104.104 97.580 1 212.04 103.207 11236.5
#16 98.476 101.837 111.175 1 200.31 103.829 10028.5
#19 92.650 111.762 101.930 1 204.41 102.114 10354.7
#21 106.193 90.544 100.071 1 196.74 98.936 9615.1
#23 93.143 104.520 90.227 1 197.66 95.963 9735.3
#28 96.806 104.856 92.445 1 201.66 98.036 10150.7
#29 100.845 97.343 97.360 1 198.19 98.516 9816.6
#30 92.315 101.516 92.475 1 193.83 95.436 9371.5