r - 使用字符串中的列名初始化 R data.table

标签 r data.table

我想做这样的事情:

> colname <- "a"
> dt <- data.table(colname = c(1,2,3,4))
   a
1: 1
2: 2
3: 3
4: 4

但是,我得到了这个:

> colname <- "a"
> dt <- data.table(colname = c(1,2,3,4))
   colname
1:       1
2:       2
3:       3
4:       4

除了创建data.table并随后分配名称之外,还有解决这个问题的好方法吗?

最佳答案

我们可以使用setnamessetnames 的优点是它可以通过在 oldnew 中提供名称来命名所有列或列的子集论据

dt <- data.table(c(1,2,3,4))
setnames(dt, colname)

我们可以在创建对象本身时包装setnames

dt <- setnames(data.table(c(1,2,3,4)), colname)[]
dt
#   a
#1: 1
#2: 2
#3: 3
#4: 4

关于r - 使用字符串中的列名初始化 R data.table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48800960/

相关文章:

r - 从R中的多行字符中提取

r - 将多个时间间隔合并到一个组单元内(首选 dplyr 或 data.table 解决方案)

r - 情节旁边的索引表

r - R 中的非等值连接与 data.table - 反引号列名问题

r - setkey 和 := operator, 数据表,R

r - 使用 R 计算 2 个时间戳之间的时间差(以小时为单位)

r - 矩阵乘法(逐行)

r - 将函数调用转换为 R 中的字符

r - 如何将值添加到特定矩阵行列

r - 获取每一行中给定值的列名