【发布时间】:2014-05-23 10:46:02
【问题描述】:
我有一个如下的df...
V1 V2 V3 V4 V5 V6 V7 V8
m.Bra004793 Bra004793 887 887.00 21.74 0.45 0.29 16.40
m.Bra004793.1 Bra004793 907 907.00 20.52 0.42 0.27 15.11
m.Bra004793.2 Bra004793 1006 1006.00 16.39 0.30 0.19 10.81
m.Bra004793.3 Bra004793 988 988.00 56.56 1.05 0.67 38.02
m.Bra004793.4 Bra004793 1097 1097.00 32.69 0.54 0.35 19.67
对于每个唯一 ID(例如 Bra004793),我想通过选择最大 V8 来选择最佳 V1。例如在这种情况下,我想获得以下 id
m.Bra004793.3 Bra004793 988 988.00 56.56 1.05 0.67 38.02
但不幸的是,我正在尝试的 dplyr 包不起作用。这是我迄今为止尝试过的..
test <- read.table("test_PASA_isoform.csv", sep = ",", h = T)
head(test)
data.filetered <- as.data.frame(test %.% group_by(V2) %.% summarise(V8 = max(V8)))
head(data.filetered)
V2 V1 V8
1 Bra004793 m.Bra004793 38.02
在这里您可以看到,即使我得到了正确的结果,我也没有得到正确的 V1 id。谁能指出我哪里做错了。
谢谢 乌彭德拉
【问题讨论】:
-
也许:
test %.% group_by(V2) %.% filter( V8 == max(V8) )? -
很好用。我不知道 dplyr 包中的过滤器功能。谢谢.....