【问题标题】:Use string as column name in data.table constructor在 data.table 构造函数中使用字符串作为列名
【发布时间】:2020-01-30 13:23:58
【问题描述】:

假设我想创建一个,其名称在字符串中指定。我可以这样做:

# Load library  
library(data.table)

# Name for my column
mycol <- "Column Name"

# Create data table
dt <- data.table(1:5)

# Peek
dt
#>    V1
#> 1:  1
#> 2:  2
#> 3:  3
#> 4:  4
#> 5:  5

# Rename
names(dt) <- mycol

# Peek
dt
#>    Column Name
#> 1:           1
#> 2:           2
#> 3:           3
#> 4:           4
#> 5:           5

reprex package (v0.3.0) 于 2020 年 1 月 30 日创建

我的问题是,我可以通过在构造函数中使用字符串来使其更简洁吗? dt &lt;- data.table(eval(mycol) = 1:5) 之类的东西(不起作用)。

我知道this answer,它解释了将名称为字符串的变量添加现有数据表的几种方法,但这并没有解释如何在 data.table 的构造函数中执行此操作。有可能吗?

【问题讨论】:

  • 不漂亮也不简洁,但eval(parse(text = paste0("data.table(`", mycol, "`=1:5)")))setnames()不就是去这里的路吗?

标签: data.table r data.table


【解决方案1】:

也许像这样使用setnames()

dt <- setnames(data.table(1:5), mycol)

dt <- data.table(1:5)
setnames(dt, mycol) # Update by reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多