我试图在数据框中创建一个新变量(创建一个新列)。对于每个观察值计算的值都不相同,所以我使用for循环。比方说,我想添加到数据帧REPLIC
新变量称为PL
将值设置为一个新变量
REPLIC$PL <- for (i in 1:ncol(REPLIC)) if (REPLIC$FTR[i]=="D") { REPLIC$PL[i] <- REPLIC$f_of_bet[i]*starting_budget*REPLIC$max[i])} else { REPLIC$PL[i] <- REPLIC$f_of_bet[i]*starting_budget*-1}
我一直在使用发生变异
REPLIC <- mutate(REPLIC, PL = for loop goes here)
也尝试应用函数
也尝试REPLIC$PL <- apply(REPLIC,1, for loop here)
I对R而言,我并没有真正明白我在这里失去的东西。到目前为止我管理的唯一事情是在全球环境中创建PL
值。如果有人能指导我,我会很开心。
哇哦!并不认为解决方案可能如此简单。直到现在还不知道ifelse函数。非常感谢!!顺便说一句 - 关于for循环,我是否也需要在某处使用'break',或者在完成数据框后才停止? –
一个for循环会在迭代所有输入元素时完成(在你的案例中'1:ncol'将遍历所有列索引,如果添加一个'break',循环将完全停止在它所在的位置遇到。 – Val