我希望通过更改列的索引来递归地对数据表进行子集化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 的方法,但我就是找不到它。看了很多帖子,this https://stackoverflow.com/questions/41112658/data-table-in-r-subset-using-column-index是最相关的
如果我们根据索引或名称进行子集化,我们可以在.SDcols
i1 <- dt[, .I[.SD[[1]] %chin% subset_by], .SDcols = z]
dt[i1]
请注意,对列进行子集化data.table/tbl_df/data_frame
会是[[
or $
subset_by <- unique(dt[[z]])[1:2]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)