我在R中使用内置数据集"mtcars".我已将其转换为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格式).任何帮助将不胜感激.提前致谢!!
你不应该做这样的事情,在所有的(有可能是你的目标有更好的方式),但你需要填写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
Run Code Online (Sandbox Code Playgroud)
显然,如果您有混合数据类型,则还需要混合NA类型.读help("NA").