我是R新手,我試圖使用dplyr根據行值摺疊行。以下示例顯示示例數據。使用dplyr摺疊行
set.seed(123)
df<-data.frame(A=c(rep(1:4,4)), B=runif(16,min=0,max=1), C=rnorm(16, mean=1,sd=0.5))
A B c
1 1 0.36647435 0.7485365
2 2 0.51864614 0.8654337
3 3 0.04596929 0.9858012
4 4 0.15479619 1.1294208
5 1 0.76712372 1.2460700
6 2 0.17666676 0.7402996
7 3 0.89759874 1.2699954
8 4 0.90267735 0.7101804
9 1 0.91744223 0.3451281
10 2 0.25472599 0.8604743
11 3 0.10933985 0.8696796
12 4 0.71656017 1.2648846
13 1 0.21157810 1.3170205
14 2 0.14947268 1.2789700
15 3 0.92251060 1.5696901
16 4 0.30090579 1.7642853
我想基於所述條件總結/合攏的兩行,在A
列中的行具有值1和2爲一個行(如行1的平均值和2)。因此最終結果將只有12行,因爲其他4行已摺疊。
我試圖使用以下dplyr
函數,但沒有多大用處。
install.packages( 「tidyverse」) 庫(tidyverse)
df %>% summarize_each(fun(i){ for i %in% c(1,2)funs(mean) })
預期的輸出是一樣的東西:
A B C
1 1.5 0.4425602 0.8069851
3 3 0.04596929 0.9858012
4 4 0.15479619 1.1294208
5 1.5 0.4718952 0.9931848
7 3 0.89759874 1.2699954
8 4 0.90267735 0.7101804
9 1.5 0.5860841 0.6028012
11 3 0.10933985 0.8696796
12 4 0.71656017 1.2648846
13 1.5 0.1805254 1.297995
15 3 0.92251060 1.5696901
16 4 0.30090579 1.7642853
預先感謝您。
行沒有完全摺疊,它們是2×2倒塌,你不解釋規則,在你的真實數據中,你真的有4行的序列,像這樣? –
@Moody_Mudskipper如果列A中的值爲1和2,則行將被摺疊。 – G1124E
生成隨機數據時,在您的示例中包含'set.seed()'調用將會很有幫助。這樣其他人可以準確地複製你的結果! –