我正在尝试使用 tidyverse/dplyr 重命名 R 中的两种类型的变量。第一个类型“var_a_year”,我想将其重命名为“sample_year”。第二种变量“var_b_7”,我想将其重命名为“index_year”。
第二个变量“var_b”从数字 7 开始,表示第一年“2004”。并且每年增加2。因此,对于 2005 年,第二个类型变量称为“var_b_9”,如图所示。
我想使用循环,这样我就可以加快速度,而不是每年写一行。
提前谢谢了!
df <- df %>%
rename(
sample_2004 = var_a_2004, index_2004 = var_b_7,
sample_2005 = var_a_2005, index_2005 = var_b_9,
sample_2006 = var_a_2006, index_2006 = var_b_11,
sample_2007 = var_a_2007, index_2007 = var_b_13,
...
sample_2020 = var_a_2020, index_2020 = var_b_39)
没有必要使用循环。rename_with
会成功的:
df <- tibble(var_a_2004=NA, var_b_7=NA, var_a_2005=NA, var_b_8=NA)
renameA <- function(x) {
return(paste0("sample_", stringr::str_sub(x, -4)))
}
df %>% rename_with(renameA, starts_with("var_a"))
Gives
# A tibble: 1 x 4
sample_2004 var_b_7 sample_2005 var_b_8
<lgl> <lgl> <lgl> <lgl>
1 NA NA NA NA
我将让您自行研究如何为您的代码编写相应的函数var_b_XXXX
列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)