有:
> a <- 4
> a
[1] 4
> aDT <- data.table(a = c(1,2), b = c(NA,NA))
> aDT
a b
1: 1 NA
2: 2 NA
需要:
> aDT <- data.table(a = c(1,2), b = c(4,4))
> aDT
a b
1: 1 4
2: 2 4
尝试:
> aDT[,b := rep(a, times = nrow(aDT))]
警告讯息: 1:在
[.data.table
(aDT ,,:=
(b,rep(a,times = nrow(aDT))))中: 提供4项将分配给'b'列的2项(2未使用) 2:在[.data.table
(aDT ,,:=
(b,rep(a,times = nrow(aDT))))中: 强制'双'RHS为'逻辑'以匹配列的类型;可能有截断精度。首先将目标列更改为“double”(通过创建新的'double'向量长度2(整个表的nrows)并分配;即'replace'列),或将RHS强制为'logical'(例如1L,NA_) [real | integer] _,as。*等)使你的意图清晰,速度快。或者,请在创建表格时正确设置列类型,并坚持使用。
如您所见,因为数据表有一个列,其名称与全局环境中的变量之一相同。 如何修复代码?