首页 > 解决方案 > 如何从 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")

标签: rkey-value

解决方案


我们可以用pivot_longer

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

推荐阅读