【发布时间】:2013-09-26 00:18:24
【问题描述】:
我正在使用一些使用数据表类而不是数据框类的 R 代码。
如何在 R 中执行以下操作而无需将 map.dt 转换为 map.df?
map.dt = data.table(chr = c("chr1","chr1","chr1","chr2"), ref = c(1,0,3200,3641), pat = c(1,3020,3022, 3642), mat = c(1,0,3021,0))
parent = "mat"
chrom = "chr1"
map.df<-as.data.frame(map.dt);
parent.block.starts<-map.df[map.df$chr == chrom & map.df[,parent] > 0,parent];
注意:父母需要动态分配,它是用户的输入。在此示例中,我选择了“垫子”,但它可以是任何列。
注意1:parent.block.starts 应该是一个整数向量。
注意 2:map.dt 是一个数据表,其中列名是 c("chr","ref","pat","mat")。
问题是在数据表中我无法按名称访问给定列,或者至少我不知道如何访问。
如果您有什么建议,请告诉我!
谢谢!
【问题讨论】:
-
您能否提供示例数据/可重现的示例(在这种情况下,针对对象
map.dt)? -
@Frank,我刚刚添加了一个简短的 map.dt 示例,谢谢!
标签: r dataframe data.table