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

时间:2019-11-27 22:40:12

标签: r string dataframe

我正在尝试以下操作:

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使用存储在对象("b")中的字符串(a)作为列名?

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

2 个答案:

答案 0 :(得分:1)

一个选项是sudo apt-get -y update并根据tibble的lh评估(!!)对象

:=

我们还可以使用tibble(!! a := 1:3) # A tibble: 3 x 1 # b # <int> #1 1 #2 2 #3 3 中的set_names

dplyr

答案 1 :(得分:1)

您也可以使用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)))