Ste*_* J. 6 r recycle data.table
我正在构建一个data.table具有不同长度的两个(或更多)输入向量:
x <- c(1,2,3,4)
y <- c(8,9)
dt <- data.table(x = x, y = y)
Run Code Online (Sandbox Code Playgroud)
并且需要填充较短的向量NA而不是回收它们的值,从而产生data.table如下:
x y
1: 1 8
2: 2 9
3: 3 NA
4: 4 NA
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这一点,而无需NA在将它们传递给data.table()构造函数之前显式填充较短的向量?
谢谢!
可以使用超出范围的索引:
library("data.table")
x <- c(1,2,3,4)
y <- c(8,9)
n <- max(length(x), length(y))
dt <- data.table(x = x[1:n], y = y[1:n])
# > dt
# x y
# 1: 1 8
# 2: 2 9
# 3: 3 NA
# 4: 4 NA
Run Code Online (Sandbox Code Playgroud)
或者您可以y通过执行来扩展(如评论中推荐的@Roland):
length(y) <- length(x) <- max(length(x), length(y))
dt <- data.table(x, y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1128 次 |
| 最近记录: |