如何从 R 中的键值对(字符 = 字符)中提取键?

How do I extract the key from a key-value pair (character = character) in R?

我有这个变量

variable_pairs <- c("var_name1" = "var_id1", "var_name2" = "var_id2")

我需要提取名称并去除引号,所以我得到类似 (var_name1, var_name2)

的内容

r 中有这种效果吗?我怀疑这在 Python 中更容易完成,但我必须在 R 中完成。而且我是一个绝对的 R 初学者。

非常感谢您的帮助!

编辑:让我的目的更清晰一些。

我需要在 select = c(year, *indicator_vector_name*) 部分发送姓名。我首先不得不手动完成它 (select = c(year, *total_population, gdp*)) 但这显然不好。 'mmr' 对象然后转到 ggplot 函数。

indicator_vector <- c('total_population'='SP.POP.TOTL', 'gdp' = 'NY.GDP.MKTP.CD', 'gdp_growth' ='NY.GDP.MKTP.KD.ZG', 'fertility_rate' ='SP.DYN.TFRT.IN', 'pop_growth'='SP.POP.GROW', 'pop_0_14'='SP.POP.0014.TO.ZS', 'pop_65plus'='SP.POP.65UP.TO.ZS', 'trade_ratio' ='NE.TRD.GNFS.ZS')

indicator_vector_name <- noquote(names(indicator_vector))


for (i in indicator_vector){
  indicator_data <- WDI(indicator = indicator_vector, country = c(country), start = start, end= end)
}

mmr <- melt(subset(indicator_data, select = c(year, indicator_vector_name)), id.vars = "year")

您不需要更改不带引号的变量名。试试这个:

indicator_vector_name <- names(indicator_vector)
mmr <- melt(indicator_data[c('year', indicator_vector_name)], id.vars = "year")

我们可以使用pivot_longer

library(dplyr)
library(tidyr)
indicator_data %>% 
  select(year, all_of(names(indicator_vector)) %>%
  pivot_longer(cols = -year)