Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从列值筛选行名称中的数据帧_R_Filtering_Dataframe - Fatal编程技术网

R 从列值筛选行名称中的数据帧

R 从列值筛选行名称中的数据帧,r,filtering,dataframe,R,Filtering,Dataframe,基本上我有两列数据框(target\u id和fpkm)。我只想在第一列中保留那些不重复的行名称。 例如,在下面的数据框中,您可以看到有两个行名具有相同的名称(几乎)comp267138_c0_seq1comp267138_c0_seq2,并且从这两个行名中,我只想保留一个comp267138_c0_seq2,因为第2列中的值较高 target_id fpkm comp247393_c0_seq1 3.197885 comp257058_c0_seq4 1

基本上我有两列数据框(
target\u id
fpkm
)。我只想在第一列中保留那些不重复的行名称。
例如,在下面的数据框中,您可以看到有两个行名具有相同的名称(几乎)
comp267138_c0_seq1
comp267138_c0_seq2
,并且从这两个行名中,我只想保留一个
comp267138_c0_seq2
,因为第2列中的值较高

       target_id        fpkm
comp247393_c0_seq1    3.197885
comp257058_c0_seq4    1.624577
comp242590_c0_seq1    1.750319
comp77911_c0_seq1     1.293059
comp241426_c0_seq1    1.626589
comp288413_c0_seq1   14.828853
comp294436_c0_seq1   11.555596
comp63603_c0_seq1     1.982386
comp267138_c0_seq1    8.594494
comp267138_c0_seq2   11.134958
comp321623_c0_seq1    6.934149

看来,您只想考虑<代码>目标TAGIDID<代码>(前两个组件,按<代码> <代码> >

如果调用了
DT

# create   column without the _seqx part
DT$new_id <- sapply(lapply(strsplit(as.character(DT[['target_id']]), '_'), head, 2),
              paste, collapse = '_')
library(plyr)


ddply(DT, .(new_id), function(x) x[which.max(x$fpkm),])
#创建不带_seqx部分的列

DT$new_id+1用于发布示例数据。