Я пытаюсь улучшить свои коды R, и мне интересно, как я могу перебрать эти переменные/подобную проблему, чтобы уменьшить длину кода? Я предполагаю, что должно быть очень простое решение, но почему-то я не могу его понять.
df$zx1 <- with(df, var1*(x1/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx2 <- with(df, var1*(x2/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx3 <- with(df, var1*(x3/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx4 <- with(df, var1*(x4/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx5 <- with(df, var1*(x5/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx6 <- with(df, var1*(x6/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx7 <- with(df, var1*(x7/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx8 <- with(df, var1*(x8/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx9 <- with(df, var1*(x9/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
df$zx10 <- with(df, var1*(x10/(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)))
Любые входы высоко ценятся!
df[paste0("zx", 1:10)] <- df$var1 * df[-1] / rowSums(df[-1])
(при условии, чтоvar1
— это первый столбец, а все остальные —x1:x10
). В противном случае, пожалуйста, предоставьте пример ваших данных - person David Arenburg   schedule 28.07.2020