【发布时间】:2019-07-09 00:03:44
【问题描述】:
对某个类的变量进行重复操作(简单算术)并返回新值,代码简洁。
我尝试编写一个 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 尝试了以下for循环
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) 解决方案。
【问题讨论】: