データ フレーム クラスではなく、データ テーブル クラスを使用する R コードを使用しています。
map.dt を map.df に変換することなく、R で次の操作を行うにはどうすればよいですか?
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];
注: 親は動的に割り当てる必要があり、ユーザーからの入力です。この例では「mat」を選択しましたが、どの列でもかまいません。
注 1: parent.block.starts は整数のベクトルである必要があります。
注 2: map.dt は、列名が c("chr","ref","pat","mat") のデータ テーブルです。
問題は、データ テーブルでは特定の列に名前でアクセスできないか、少なくともその方法がわからないことです。
何か提案があれば教えてください!
ありがとう!