【发布时间】:2020-04-25 19:19:28
【问题描述】:
由于我有一个名为 adj_SALARY 的多年样本,因此我正在尝试更改数据框中的薪金列以调整通货膨胀。工资列是一个字符向量(由 unadj_SALARY 表示),我需要将这些值乘以消费者价格指数的比率(如下所示作为分数)以将所有值转换为 2017 美元。我也有列作为虚拟变量,指示 YEAR_2014、YEAR_2015、YEAR_2016、YEAR_2017 和 YEAR_2018。我尝试运行下面的代码,但仍然遇到错误消息“在 if (YEAR_2014 == 1) { : 条件的长度 > 1,并且只会使用第一个元素”。希望获得一些关于设置它的最佳方法的帮助!这是我现在的代码:
enter code here NHIS_test <- NHIS1 %>%
mutate(adj_SALARY = if(YEAR_2014 == 1) {
as.numeric(as.character(NHIS1$unadj_SALARY))*(242.839/230.280) }
else if(YEAR_2015 == 1) {
as.numeric(as.character(NHIS1$unadj_SALARY))*(242.839/233.916) }
else if (YEAR_2016 == 1) {
as.numeric(as.character(NHIS1$unadj_SALARY))*(242.839/233.707) }
else if (YEAR_2017 == 1) {
as.numeric(as.character(NHIS1$unadj_SALARY))*(242.839/236.916)}
else if (YEAR_2018 == 1) {
as.numeric(as.character(NHIS1$unadj_SALARY))*(1)})
【问题讨论】:
标签: r if-statement numeric dplyr