以下是我正在使用的数据示例:
ID <- c(rep("A", 4), rep("B", 4))
LKUP <- c(2, 4, 10, 25, 17, 18, 6, 3)
df <- data.frame(ID, LKUP)
ID LKUP
A 2
A 4
A 10
A 25
B 17
B 18
B 6
B 3
我想将LKUP列除以2,但前提是该值大于10。
输出应为:
ID LKUP
A 2
A 4
A 10
A 12.5
B 8.5
B 9
B 6
B 3
ID列无关紧要,但我确实需要将其保留在最终输出中。
这看似简单(可能是),但我是R的新手,无法弄清楚如何去做。
感谢您的帮助。
编辑:如果我有任何方法可以改进这个问题,请告诉我。
答案 0 :(得分:3)
df$LKUP[df$LKUP > 10] <- df$LKUP[df$LKUP > 10] / 2
答案 1 :(得分:2)
我们可以使用ifelse
df1$LKUP <- with(df1, ifelse(LKUP > 10, LKUP/2, LKUP))
或data.table
library(data.table)
setDT(df1)[LKUP > 10, LKUP := LKUP/2][]
注意:确保'LKUP'为numeric
类
答案 2 :(得分:1)
使用dplyr
的{{1}}
mutate()