繁体   English   中英

告诉 R 使用存储在对象中的字符串作为列名

[英]Tell R to use string stored in object as column name

我正在尝试以下操作:

a <- "b"
data.frame (a = c (1:3))

返回(当然):

data.frame (a = c (1:3))
>   a
> 1 1
> 2 2
> 3 3

我想要的是:

a <- "b"    
data.frame (foo (a) = c (1:3))
>   b
> 1 1
> 2 2
> 3 3

有没有办法告诉 R 使用存储在对象 ( a ) 中的字符串 ( "b" ) 作为列名?

编辑:我知道我的问题标题可能意义不大。 有改进建议吗?

一种选择是对:=的 lhs 上的对象进行tibble和求值 ( !! )

tibble(!! a := 1:3)
# A tibble: 3 x 1
#      b
#  <int>
#1     1
#2     2
#3     3

我们还可以使用dplyr中的set_names

library(dplyr)
data.frame(1:3) %>%
     set_names(a)

您还可以使用setNames

setNames(data.frame(1:3), a)

#  b
#1 1
#2 2
#3 3

或者使用matrix并添加dimnames

data.frame(matrix(1:3, ncol = 1, dimnames = list(NULL, a)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM