首页 > 解决方案 > 如何使数据框变量的列名

问题描述

我可以构建一个data.frame这样的 -

data.frame('a_1' = 3)

但是,我想将列名a1设为变量。所以我尝试了这个 -

data.frame(get(paste("a", 1, sep = "_")) = 3)

有了这个我得到以下错误 -

Error: unexpected '=' in "data.frame(get(paste("a", 1, sep = "_")) ="

你能帮我理解使colnamesas 变量的正确方法吗?

谢谢你的指点。

标签: rdataframe

解决方案


我们可以使用tibblewith:=来做到这一点

library(stringr)
library(tibble)
tibble(!! str_c("a", "_", 1) := 3)

-输出

# A tibble: 1 x 1
    a_1
  <dbl>
1     3

base R中,这可以使用setNames

df1 <- setNames(data.frame(3), paste0("a", "_", 1))

-输出

df1
   a_1
1   3

或者,如果它仅用于特定数量的列,则创建数据集并使用names

df1 <- data.frame(3)
names(df1)[1] <- paste0("a_", 1)

推荐阅读