[英]Value a column based on the value of another column in R
我有一个data.frame
,其列的值介于3到18之间。我想要做的是创建一个新的列,其值从4到14。
lace$New.Lace[lace$TOTAL.LACE == 3] <- 4
lace$New.Lace[lace$TOTAL.LACE >= 14] <- 13
然后,当lace$TOTAL.LACE > 4 && lace$TOTAL.LACE < 13] <- lace$TOTAL.LACE
lace$TOTAL.LACE
时,我想使lace$New.Lace
等于lace$TOTAL.LACE > 4 && lace$TOTAL.LACE < 13] <- lace$TOTAL.LACE
我尝试执行以下操作:
lace$New.Lace[lace$TOTAL.LACE > 4 && lace$TOTAL.LACE < 13] <- lace$TOTAL.LACE
最终只使lace$New.Lace
等于lace$TOTAL.LACE
因此向量变得相同。
我应该怎么写呢? 我已经将指令写为:
lace$New.Lace[lace$TOTAL.LACE == 4] <- 4
lace$New.Lace[lace$TOTAL.LACE == 5] <- 5
...
这是一个痛苦的屁股。
谢谢,
在这种情况下,您可以仅遍历TOTAL.Lace值,然后根据您的条件将值分配给New.Lace。 像这个例子:
tl = 18:3
df = data.frame(tl)
df$nl = df$tl
for (i in 1:length(df$tl)) {
if (df$tl[i] <= 4) {
df$nl[i] = 4
} else if (df$tl[i] >= 14) {
df$nl[i] = 13
}
}
我使用了您的原始条件:
lace$New.Lace[lace$TOTAL.LACE >= 14] <- 13
但是似乎应该<- 14
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.