要创建data.frame或列表,我可以写
data.frame(yo=1:2, wesh=3:4)
yo wesh
1 1 3
2 2 4
list(yo=1:2, wesh=3:4)
$yo
[1] 1 2
$wesh
[1] 3 4
但如果我写
i <- "yo"
data.frame(i=1:2, wesh=3:4)
i wesh
1 1 3
2 2 4
list(i=1:2, wesh=3:4)
$i
[1] 1 2
$wesh
[1] 3 4
i不会在输出中更新为“yo”。如何使它成为可能?
答案 0 :(得分:2)
原因是因为在data.frame()
中将其定义为变量的名称时不会对其进行评估。请尝试data.frame(i = i, wesh = 3:4)
查看差异。但是,解决方法可以是使用setNames
,即
setNames(data.frame(1:2, 3:4), c(i, 'wesh'))
#same for lists
#setNames(list(1:2, 3:4), c(i, 'wesh'))
给出,
yo wesh 1 1 3 2 2 4