如何使用存储在变量中的名称创建数据框时命名列?

Ali*_*Ali 2 r dataframe

试图创建一个像这样的data.frame:

a = "foo"
bar = data.frame(a = 1:3)
Run Code Online (Sandbox Code Playgroud)

但是列的名称a不是foo:

> bar
  a
1 1
2 2
3 3
Run Code Online (Sandbox Code Playgroud)

在创建data.frame之后可以重命名该列,但是如何通过同一个data.frame命令中的变量轻松地分配它的名称?

A5C*_*2T1 9

setNames()功能应该适合你:

a <- "Numbers"
b <- "Letters"

bar <- setNames(data.frame(1:3, letters[1:3]), c(a, b))
bar
#   Numbers Letters
# 1       1       a
# 2       2       b
# 3       3       c
Run Code Online (Sandbox Code Playgroud)


Rei*_*son 5

我不认为你可以做你想做的事情,因为R解释你提供的参数名称的方式.你想要有效地get(a) = 1:3想要R取存储对象的值a而不是标签a本身,但这里不允许使用这个成语.

我会这样做:

> a <- "foo"
> bar <- data.frame(1:3)
> names(bar) <- a
> 
> bar
  foo
1   1
2   2
3   3
Run Code Online (Sandbox Code Playgroud)