用r中的变量替换列表键名

  • 本文关键字:列表 替换 变量 r
  • 更新时间 :
  • 英文 :


比如说我想创建一个这样的列表:

x <- c(John=23, Mary=33)

是否有办法用变量代替键名?类似这样的东西(但由于明显的原因,这不起作用:

husband <- 'John'
wife <- 'Mary'
x <- c(husband=23, wife=33)
# Expected output: c(John=23, Mary=33)

换句话说,在上面的例子中,是否有一种方法可以用John等代替husband?

您可以使用setNames

husband <- 'John'
wife <- 'Mary'
setNames(c(23, 33), c(husband, wife))
# John Mary 
#  23   33 

或与dplyr-

library(dplyr)
unlist(lst(!!husband := 23, !!wife := 33))

In Base R:

一种适用于所有名称的方法,并从变量名称中获取它:

names(x) <- Map(function(x) eval(parse(text=x)), names(x))

> x
John Mary 
23   33 
> 

我们可以使用dput

x <- c(John=23, Mary=33)
husband <- 'John'
wife <- 'Mary'
result <- dput(x)

输出:

c(John = 23, Mary = 33)

相关内容

  • 没有找到相关文章

最新更新