R:用paste()定义列名

Cpt*_*emo 8 r dataframe

问题很简单,但我找不到解决方案.

我想创建一个新的数据框,用于定义列的名称paste0.

理想情况下,我想做这样的事情(哪些不起作用).

mydataframe <- data.frame(id = 1,
                          paste0('Here_','my_','column_','name') = 'foo')
# Error: unexpected '=' in:
#   "mydataframe <- data.frame(id = 1,
#                           paste0('Here_','my_','column_','name') ="
Run Code Online (Sandbox Code Playgroud)

另外,为什么不起作用?

pet*_*ord 6

Data.frame是一个函数,因此需要参数。这些参数不能是其他函数。例如,您不能定义像fn <- function(paste0('Hi_', 'how_are_you') = x) { x }. R 只是不能那样工作。

但是,您仍然可以在事后动态更改列名:

df <- data.frame(1, 'foo')
names(df) <- c('id', paste0('Here_','my_','column_','name'))
Run Code Online (Sandbox Code Playgroud)

那应该做你想做的。

优点:您可以简化您的贴如下:paste('Here', 'my', 'column', 'name', sep = '_')