R data.table。生成变量名称

时间:2016-11-21 17:21:38

标签: r data.table

我想生成一个包含许多列的数据表,并自动生成名称,例如:

data.table(paste0("A",10:24)=1:15)

data.table(paste0("A",10:24)=rep(runif(100), 15)

但是我收到了这个错误:

错误:“data.table”中的意外“=”(paste0(“A”,10:24)=“

我该怎么做?

1 个答案:

答案 0 :(得分:2)

有多种方法可以做到这一点。这是三个。首先创建表,然后设置名称。或者,创建一个命名列表并将其强制转换为数据表。

setnames(as.data.table(as.list(1:15)), paste0("A", 10:24))[]
#    A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24
# 1:   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15

do.call(data.table, setNames(as.list(1:15), paste0("A", 10:24)))
#    A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24
# 1:   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15

as.data.table(setNames(as.list(1:15), paste0("A", 10:24)))
#    A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24
# 1:   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15

## just for fun ...
fread(paste(c(paste0("A", 10:24), "\n", 1:15), collapse = " "))
#    A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24
# 1:   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15