如何将列的特定值与 R 中的特定值相乘
How to multiply specific values of a column with a specific value in R
所以我有一个包含 2 列的数据框。在第一列(年份)中,我有多年的数据。在第二列 (wage_base) 我有关于基本工资的数据。
我想将属于 2010 年的数据框的所有行乘以 1.2 的值,并希望使用这些新值永久更改数据框。到目前为止我试过这个:
dt$wage_base <- dt$wage_base * 1.2
我只是遗漏了我声明我只想将 1.2 乘以 2010 年的值的部分。
感谢您的帮助!
我们可以创造一个逻辑条件
i1 <- dt$year == 2010
dt$wage_base[i1] <- dt$wage_base[i1] * 1.2
或 data.table
library(data.table)
setDT(dt)[, wage_base := as.numeric(wage_base)
][year == 2010, wage_base := wage_base * 1.2]
或 dplyr
library(dplyr)
dt %>%
mutate(wage_base = case_when(year == 2010 ~ wage_base * 1.2,
TRUE ~ as.numeric(wage_base)))
您还可以这样做:
dt$wage_base <- dt$wage_base * 1.2^(dt$year == 2010)
所以我有一个包含 2 列的数据框。在第一列(年份)中,我有多年的数据。在第二列 (wage_base) 我有关于基本工资的数据。
我想将属于 2010 年的数据框的所有行乘以 1.2 的值,并希望使用这些新值永久更改数据框。到目前为止我试过这个:
dt$wage_base <- dt$wage_base * 1.2
我只是遗漏了我声明我只想将 1.2 乘以 2010 年的值的部分。
感谢您的帮助!
我们可以创造一个逻辑条件
i1 <- dt$year == 2010
dt$wage_base[i1] <- dt$wage_base[i1] * 1.2
或 data.table
library(data.table)
setDT(dt)[, wage_base := as.numeric(wage_base)
][year == 2010, wage_base := wage_base * 1.2]
或 dplyr
library(dplyr)
dt %>%
mutate(wage_base = case_when(year == 2010 ~ wage_base * 1.2,
TRUE ~ as.numeric(wage_base)))
您还可以这样做:
dt$wage_base <- dt$wage_base * 1.2^(dt$year == 2010)