【问题标题】:How to multiply specific values of a column with a specific value in R如何将列的特定值与R中的特定值相乘
【发布时间】:2021-05-16 19:42:09
【问题描述】:

所以我有一个包含 2 列的数据框。在第一列(年份)中,我有多年的数据。在第二列 (wage_base) 我有关于基本工资的数据。

我想将属于 2010 年的数据框的所有行乘以 1.2 的值,并希望用这些新值永久更改数据框。到目前为止我尝试过这个:

dt$wage_base <- dt$wage_base * 1.2

我只是错过了我只想将 1.2 乘以 2010 年的值的部分。

感谢您的帮助!

【问题讨论】:

    标签: r dataframe multiple-columns


    【解决方案1】:

    我们可以创建一个逻辑条件

    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)))
    

    【讨论】:

      【解决方案2】:

      你也可以这样做:

      dt$wage_base <- dt$wage_base * 1.2^(dt$year == 2010)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-05
        • 1970-01-01
        • 1970-01-01
        • 2021-07-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多