如何使用变量来选择以数字作为名称的列

sba*_*bac 3 r dplyr

我想使用变量f_year而不是2004. 我该怎么做?

\n
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\n
Run Code Online (Sandbox Code Playgroud)\n

asd*_*-tm 5

您可以用单衬(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)