我有一個來自質譜測量的資料集。所以在這個小子集中有重復但強度不同的行或肽。
a <- dput(test_Data)
structure(list(UNIPROT = structure(c(2L, 2L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L), .Label = c("A8DUK4", "P08032", "P15508"), class = "factor"),
Intensity = c(16926.19, 36738.94, 2203.22, 5338.85, 133.44,
27991.35, 29505.84, 201.4695, 47469.09, 24841.01, 4546.9,
22805.69, 18494.71, 28805.99, 68220.65, 90526.29, 63259.19,
44492.48, 65497.13, 40704.81, 334874.1, 38702.87, 300135)), class = "data.frame", row.names = c(NA,
-23L))
資料框
UNIPROT Intensity
1 P08032 16926.1900
2 P08032 36738.9400
3 P08032 2203.2200
4 P08032 5338.8500
5 P08032 133.4400
6 P08032 27991.3500
7 P08032 29505.8400
8 P15508 201.4695
9 P15508 47469.0900
10 P15508 24841.0100
11 P15508 4546.9000
12 P15508 22805.6900
13 P15508 18494.7100
14 P15508 28805.9900
15 A8DUK4 68220.6500
16 A8DUK4 90526.2900
17 A8DUK4 63259.1900
18 A8DUK4 44492.4800
19 A8DUK4 65497.1300
20 A8DUK4 40704.8100
21 A8DUK4 334874.1000
22 A8DUK4 38702.8700
23 A8DUK4 300135.0000
所以我的目標
我必須從重復的行中只保留一個值,但在取出平均值之后。
如果是我的第一個肽,我不想考慮這一行
5 P08032 133.4400
我的想法是只取出高于某個閾值的那些行,如果它超過閾值,則取平均值并添加或生成一個新的資料幀,其中只保留唯一的行及其平均值。
因此,每個人都可以為這些單獨的唯一行定義不同的閾值。
在我的小子集中,我有三個獨特的行。那么我是否可以設定三個不同的閾值,然后得到平均值。
任何建議或幫助將不勝感激
更新
盡管我從論文中讀到的人們認為是最大門檻。如果強度高于 5000,我可能會接受,但我又不確定剩余的肽是否小于 5000,我該如何考慮。
但現在我會以 5000 為分界點。
uj5u.com熱心網友回復:
分享解決上述問題的3種方法。
方法一:使用aggregate函式
aggregate(test_Data[test_Data$Intensity >= 5000, 2], list(test_Data[test_Data$Intensity >= 5000, ]$UNIPROT), FUN = mean)
輸出:
Group.1 x
1 A8DUK4 116268.06
2 P08032 23300.23
3 P15508 28483.30
方法二:使用dplyr包
library(dplyr)
test_Data %>%
filter(Intensity >= 5000) %>%
group_by(UNIPROT) %>%
summarise(Mean_Intensity = mean(Intensity))
輸出:
# A tibble: 3 x 2
UNIPROT Mean_Intensity
<fct> <dbl>
1 A8DUK4 116268.
2 P08032 23300.
3 P15508 28483.
方法三:使用data.table包
library(data.table)
setDT(test_Data) # Converting to data.table object (necessary step)
test_Data[Intensity >= 5000,.(Mean_Intensity = mean(Intensity)), by = .(UNIPROT)]
輸出:
UNIPROT Mean_Intensity
1: P08032 23300.23
2: P15508 28483.30
3: A8DUK4 116268.06
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369019.html
