Итерация повторяющейся операции (простая арифметика) над переменными определенного класса и возвращение новых значений с кратким кодом.
Я попытался закодировать цикл for и использовать dplyr case_when для выполнения операции. Операция состоит в том, чтобы разделить числовые столбцы по определенному числовому столбцу и вернуть новые дополнительные столбцы с результатом операций. У меня есть следующие фиктивные данные и код:
Sp<- c('ALF-01', 'AMB-01')
norWT<- c(4, 74.25)
stateWT<- c(4, 74.25)
avWT<- c(1.1, 3.4)
t<-data.frame(Sp, norWT, stateWT, avWT)
Я хочу разделить два числовых столбца (norwt, stateWt) на avWT
попробовал следующее для loop
output <- vector("double", ncol(t))
for (i in seq_along(t)) {
output[[i]] <-(t, class =='numeric')[[i]]/avWT
}
output
просто возвращает ошибку
ожидаемый результат должен быть примерно таким:
Sp1 norWT1 stateWT1 avWT1 norWT_avWT1 stateWT_avWT1
ALF-01 4.00 4.00 1.1 3.636364 3.636364
AMB-01 74.25 74.25 3.4 21.838235 21.838235
Было бы здорово увидеть цикл for и решение dplyr
(mutate
/ case_when
).