[英]Initialize R data.table with column name from string
我想做这样的事情:
> 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
和事后分配名称之外,还有什么好办法吗?
我们可以使用setnames
。 的优势setnames
是它可以通过提供名字被用来命名要么所有的列或列的子集old
和new
说法
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
不使用data.table
另一种方法是使用基本函数names
> colnames <- "a"
> dt <- data.table(c(1,2,3,4))
> dt
V1
1: 1
2: 2
3: 3
4: 4
> names(dt) <- colnames
> dt
a
1: 1
2: 2
3: 3
4: 4
如果您的数据框具有多列,只需将列名称的向量传递给函数names
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.