我希望通过更改列的索引z
并同时基于某个%in%
基于向量的行来对数据表进行递归子集化。
dt <- setDT(copy(diamonds))
dt <- setDT(data.frame(lapply(dt, as.character), stringsAsFactors=FALSE))
z=4
subset_by <- unique(dt[,z])[1:2]
### obviously does not work
###dt1<-dt[ z %in% subset_by]
我正在寻找最节省内存的操作来执行此操作,并且我敢肯定有一种不使用colnames的方法,但是我只是找不到它。我看了很多帖子,用这种beign最相关
如果我们根据索引或名称进行子集设置,则可以在 .SDcols
i1 <- dt[, .I[.SD[[1]] %chin% subset_by], .SDcols = z]
dt[i1]
请注意,data.table/tbl_df/data_frame
将其中的一个子集设置为[[
或$
subset_by <- unique(dt[[z]])[1:2]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句