如何在R数据框中只划分列中的某个因子?

问题描述 投票:0回答:2

这是示例数据集:

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 dataframe dplyr plyr division
2个回答
2
投票

你需要创建一个条件语句。

在基地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))

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.