为什么我没有在 R 中获得已定义标题的重命名列?
why I do not get the renamed column in R with title defined?
我正在尝试创建一个将参数定义到本地环境中的函数,我希望能在短时间内使用它。
这里是一个可重现的例子,还没有创建函数:
tibble <- structure(list(standardised_existing_cond_rate = 1.44), row.names = c(NA,
-1L), class = c("tbl_df", "tbl", "data.frame"))
我正在定义我的标题,这个例子在我使用粘贴功能将它们添加在一起时似乎不是问题:
comorbidity <- "asthma"
title <- "Standardised"
add_to_title <- comorbidity
add_last_word <- " rate in"
country = "India"
country = country
whole_title <- paste(title, add_to_title, add_last_word, country)
whole_title
但是,当我用整个标题重命名我的列名称时,我没有成功。
table <- tibble %>% rename(whole_title = standardised_existing_cond_rate)
table
很明显,我正在尝试做一些奇怪的事情。然而,我希望我能找到另一个更优雅的解决方案,以解决如何使用标题重命名我的列名。但重要的是保持整个标题名称不变,因为它们将作为定义了参数的函数传入。
使用 !!
和 :=
计算 whole_title
:
library(dplyr)
tibble %>% rename(!!whole_title := standardised_existing_cond_rate)
# `Standardised asthma rate in India`
# <dbl>
#1 1.44
还有更简单的方法,无需进入 non-standard 评估。例如 setNames
setNames(tibble, whole_title)
我们可以使用rename_at
library(dplyr)
tibble %>%
rename_at(vars(standardised_existing_cond_rate), ~ whole_title)
-输出
# A tibble: 1 x 1
# `Standardised asthma rate in India`
# <dbl>
#1 1.44
或使用rename_with
tibble %>%
rename_with(~ whole_title, standardised_existing_cond_rate)
# A tibble: 1 x 1
# `Standardised asthma rate in India`
# <dbl>
#1 1.44
我正在尝试创建一个将参数定义到本地环境中的函数,我希望能在短时间内使用它。
这里是一个可重现的例子,还没有创建函数:
tibble <- structure(list(standardised_existing_cond_rate = 1.44), row.names = c(NA,
-1L), class = c("tbl_df", "tbl", "data.frame"))
我正在定义我的标题,这个例子在我使用粘贴功能将它们添加在一起时似乎不是问题:
comorbidity <- "asthma"
title <- "Standardised"
add_to_title <- comorbidity
add_last_word <- " rate in"
country = "India"
country = country
whole_title <- paste(title, add_to_title, add_last_word, country)
whole_title
但是,当我用整个标题重命名我的列名称时,我没有成功。
table <- tibble %>% rename(whole_title = standardised_existing_cond_rate)
table
很明显,我正在尝试做一些奇怪的事情。然而,我希望我能找到另一个更优雅的解决方案,以解决如何使用标题重命名我的列名。但重要的是保持整个标题名称不变,因为它们将作为定义了参数的函数传入。
使用 !!
和 :=
计算 whole_title
:
library(dplyr)
tibble %>% rename(!!whole_title := standardised_existing_cond_rate)
# `Standardised asthma rate in India`
# <dbl>
#1 1.44
还有更简单的方法,无需进入 non-standard 评估。例如 setNames
setNames(tibble, whole_title)
我们可以使用rename_at
library(dplyr)
tibble %>%
rename_at(vars(standardised_existing_cond_rate), ~ whole_title)
-输出
# A tibble: 1 x 1
# `Standardised asthma rate in India`
# <dbl>
#1 1.44
或使用rename_with
tibble %>%
rename_with(~ whole_title, standardised_existing_cond_rate)
# A tibble: 1 x 1
# `Standardised asthma rate in India`
# <dbl>
#1 1.44