繁体   English   中英

如何将列的特定值与 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

我只是错过了 state 的部分,我只想将 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM