我像这样创建data.table.
DT = data.table(A=c(1,2,3), B=c(1,2,3,4,5))
Run Code Online (Sandbox Code Playgroud)
但我得到了这个结果.
A B
1: 1 1
2: 2 2
3: 3 3
4: 1 4
5: 2 5
Run Code Online (Sandbox Code Playgroud)
但我想得到这个.
A B
1: 1 1
2: 2 2
3: 3 3
4: NA 4
5: NA 5
Run Code Online (Sandbox Code Playgroud)
如何创建不同大小的data.table?
我们vector在list('lst')中保持不等长度,然后循环遍历list元素,在末尾追加NA并转换为data.table.
lst <- list(A=c(1,2,3), B=c(1,2,3,4,5))
DT <- setDT(lapply(lst, `length<-`, max(lengths(lst))))[]
DT
# A B
#1: 1 1
#2: 2 2
#3: 3 3
#4: NA 4
#5: NA 5
Run Code Online (Sandbox Code Playgroud)
install.packages("qpcR")
library(qpcR)
df <- data.table(qpcR:::cbind.na(A=c(1,2,3), B=c(1,2,3,4,5)))
A B
1 1 1
2 2 2
3 3 3
4 NA 4
5 NA 5
Run Code Online (Sandbox Code Playgroud)