【问题标题】:Data frame creation with dynamically assigned variable names使用动态分配的变量名称创建数据框
【发布时间】:2020-10-12 18:12:58
【问题描述】:

我想为一个名称动态确定的变量分配一个值,然后将该变量分配给数据框的一列,例如:

x = rnorm(10)
y = 'z'
data.frame(assign(y, x))

虽然 assign(y, x) 使用正确的值创建 z,但它未能将数据框的列命名为“z”。

【问题讨论】:

  • 这个工作assign(y, x)吗?
  • 嗯,我会把这个归档到“trying too hard”文件夹中。谢谢!
  • 如果您将其发布为答案,我会将其标记为这样,以便您获得信用。
  • @Duck - 如果我想将 x 分配给一个新的数据框,其列名是 y 中的任何内容,该怎么办? data.frame(assign(y, x)) 对此不起作用。
  • 让我添加一个答案!对于数据框,您可以使用 !!

标签: r rlang


【解决方案1】:

根据 OP 评论,解决方案是:

#Code
assign(y, x)

对于其他问题,您可以尝试:

#Code2
df <- data.frame(assign(y, x))
names(df)[1] <- y

输出:

df
            z
1  -0.5611014
2  -2.2370362
3   0.9037152
4  -1.1543826
5   0.4997336
6  -0.4726948
7  -0.6566381
8   1.0173725
9  -0.5230326
10 -0.9362808

【讨论】:

    猜你喜欢
    • 2015-02-27
    • 2011-10-07
    相关资源
    最近更新 更多