2017-10-27 13 views
0

このコードを実行すると、1232行のデータが新しい列A1で取得されます。私はA1に現れるすべての "1"に対して、同様に "2"と "3"の対応するSepal.Length値の平均を取得し、3つの平均値を新しいベクトルに割り当てたいという機能が欲しい。つまり、上記の要件に基づく3つの平均値を持つベクトルです。別の列からの平均値に基づいて1つの列の平均を見つける

iris1 = iris[1:12,] 
a = data.frame(A1=rep(1,4)) 
b = data.frame(A1=rep(2,4)) 
c = data.frame(A1 = rep(3,4)) 
abc = rbind(a,b,c) 
abc 
iris2 = data.frame(abc,iris1) 
View(iris2) 
+1

とのベクトルをしたい場合は、A1でグループを意味するか、そして行ごとにSepal.Lengthの平均値を取得?予想される出力は何ですか?例えば、 – zx8754

+2

。 'sapply(split(iris2 $ Sepal.Length、iris2 $ A1)、mean)'または 'aggregate(Sepal.Length〜A1、iris2、mean)'ですか? – Axeman

+0

Axemanさん、ありがとうございました。 –

答えて

0

この

library(dplyr) 
iris2 %>% group_by(A1) %>% summarise(Avg = mean(Sepal.Length,na.rm = TRUE)) 

を試してみて、あなたが本当にちょうど平均値

iris2 %>% group_by(A1) %>% summarise(Avg = mean(Sepal.Length,na.rm = TRUE)) %>% `$`(Avg) 
+1

また、 '。$ Avg'ではなく' dplyr :: pull'を参照してください。 – zx8754

+0

ありがとうBertil、私はこれを考慮します、あなたの助けに感謝します。 –

関連する問題