试图创建一个像这样的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命令中的变量轻松地分配它的名称?
该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)
我不认为你可以做你想做的事情,因为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)