1
多列數據幀我有一個多列信息,例如一個數據幀:[R計算彙總數據幀從信息
df <- data.frame(chr=c("chr1", "chr1", "chr1", "chr1", "chr1", "chr1", "chr1", "chr1", "chr2", "chr2"), Gene=c("Happy", "Happy", "Happy", "Happy", "Happy", "Happy", "Happy", "Happy", "Sad", "Sad"), site = c(100, 120, 130, 300, 2000, 2300, 2342, 2451, 120, 123), value=c(20, 25, 21, 30, -80, 31, -79, -90, 10, 13))
> df
chr Gene site value
1 chr1 Happy 100 20
2 chr1 Happy 120 25
3 chr1 Happy 130 21
4 chr1 Happy 300 30
5 chr1 Happy 2000 -80
6 chr1 Happy 2300 31
7 chr1 Happy 2342 -79
8 chr1 Happy 2451 -90
9 chr2 Sad 120 10
10 chr2 Sad 123 13
我想創建一個計算每個基因有多少聚集區的彙總數據幀有。我認爲一個集羣的行數不超過1000的行數(我的數據是通過chr和站點排序的)。 要開始我創建了一個新列使用計算在連續的行點之間的距離:
df$Distance <- c(1001, diff(df$site, lag=1, differences=1))
> df
chr Gene site value Distance
1 chr1 Happy 100 20 1001
2 chr1 Happy 120 25 20
3 chr1 Happy 130 21 10
4 chr1 Happy 300 30 170
5 chr1 Happy 2000 -80 1700
6 chr1 Happy 2300 31 300
7 chr1 Happy 2342 -79 42
8 chr1 Happy 2451 -90 109
9 chr2 Sad 120 10 -2331
10 chr2 Sad 123 13 3
我想創建一個彙總表,一排是總結了許多集羣的每個基因中發現的每個基因平均值爲正值或負值。 在上面的例子中的表格看起來像:
Gene PositiveClusters NegativeClusters
1 Happy 1 1
2 Sad 1 0
@beginneR我認爲羣集是兩個站點之間的距離不超過1,000的站點組。這就是爲什麼我計算兩個站點之間的距離,以便如果距離大於1000,那麼站點就是新集羣的起點。 – user2165857 2014-11-20 20:22:23