这是示例数据集:
library(data.table)
df = data.table(x = c(1000,2000,10,2), y = c('A','A','B','B'))
我只想分df$y == "A" by 1000
。最终数据集应显示为:
df = data.table(x = c(1,2,10,2), y = c('A','A','B','B'))
你需要创建一个条件语句。
在基地R:
df$x <- ifelse(df$y == "A", df$x/1000, df$x)
在dplyr
:
library(dplyr)
df <- df |>
mutate(x = if_else(y == "A", x/1000, x))
data.table
选项使用 fifelse
像这样:
library(data.table)
df = data.table(x = c(1000,2000,10,2), y = c('A','A','B','B'))
df[,x:=fifelse(y == "A", x/1000, x),]
df
#> x y
#> 1: 1 A
#> 2: 2 A
#> 3: 10 B
#> 4: 2 B
创建于 2023-02-18 与 reprex v2.0.2