我想使用变量f_year而不是2004. 我该怎么做?
library(dplyr)\n#> \n#> Attaching package: 'dplyr'\n#> The following objects are masked from 'package:stats':\n#> \n#> filter, lag\n#> The following objects are masked from 'package:base':\n#> \n#> intersect, setdiff, setequal, union\n\nf_year <- "2004"\n\ndf <- tibble(`2004` = c(1,2),\n `2005` = c(1,4),\n `2006` = c(2,7))\ndf\n#> # A tibble: 2 \xc3\x97 3\n#> `2004` `2005` `2006`\n#> <dbl> <dbl> <dbl>\n#> 1 1 1 2\n#> 2 2 4 7\n\ndf2 <- df %>% mutate(`2004` = ifelse(`2004` == 1, 4, `2004`))\ndf2\n#> # A tibble: 2 \xc3\x97 3\n#> `2004` `2005` `2006`\n#> <dbl> <dbl> <dbl>\n#> 1 4 1 2\n#> 2 2 4 7\nCreated on 2023-10-23 with reprex v2.0.2\nRun Code Online (Sandbox Code Playgroud)\n
您可以用单衬(R 底座)完成此操作:
df[df[,f_year] == 1, f_year] <- 4 # More data.frame-like
Run Code Online (Sandbox Code Playgroud)
或者
df[[f_year]][df[[f_year]] == 1] <- 4 # More list/vecor-like
Run Code Online (Sandbox Code Playgroud)