我正在使用内置数据集" mtcars"在R.我已将其转换为data.table格式。我有另一个NA值的data.table,m1。 m1的尺寸与mtcars的尺寸相同,比如尺寸为32X11。我的目标是在m1
中保存一些mtcars行(即,m1[c(1,11,13),]<-mtcars[c(1,11,13),]
)
使用data.table。但每当我试图这样做时,它为1,11,13行m1赋予TRUE / FALSE值。如何在m1中保存1,11,13行mtcars? (注意:我只想使用data.table格式)。 任何帮助将不胜感激。在此先感谢!!
答案 0 :(得分:5)
你根本不应该做那样的事情(你的目标可能有更好的方法),但你需要用m1
填充NA_real_
值。
library(data.table)
DT <- data.table(mtcars)
m1 <- data.table(matrix(NA, nrow=32, ncol=11))
#fills m1 with NA_logical_ values
m1[c(1,11,13),] <- DT[c(1,11,13),]
#warnings and logical values in result
m1 <- data.table(matrix(NA_real_, nrow=32, ncol=11))
m1[c(1,11,13),] <- DT[c(1,11,13),]
#works
m1 <- data.table(matrix(NA_real_, nrow=32, ncol=11))
m1[c(1,11,13), colnames(m1) := DT[c(1,11,13),]]
#assigns by reference
显然,如果您有混合数据类型,则还需要混合NA
类型。阅读help("NA")
。