4

私は次のことdplyrを行うために使用しようとしています:

 tapply(iris$Petal.Length, iris$Species, shapiro.test)

Petal.Lengths を Speicies で分割し、関数を適用します。この場合、shapiro.test.このSO の質問と他のかなりの数のページを読みます。次を使用して、変数をグループに分割することができますdo

iris %>%
  group_by(Species) %>%
  select(Petal.Length) %>%
  do(print(.$Petal.Length)) 

 [1] 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 1.5 1.6 1.4 1.1 1.2
[16] 1.5 1.3 1.4 1.7 1.5 1.7 1.5 1.0 1.7 1.9 1.6 1.6 1.5 1.4 1.6
[31] 1.6 1.5 1.5 1.4 1.5 1.2 1.3 1.4 1.3 1.5 1.3 1.3 1.3 1.6 1.9
[46] 1.4 1.6 1.4 1.5 1.4
 [1] 4.7 4.5 4.9 4.0 4.6 4.5 4.7 3.3 4.6 3.9 3.5 4.2 4.0 4.7 3.6
[16] 4.4 4.5 4.1 4.5 3.9 4.8 4.0 4.9 4.7 4.3 4.4 4.8 5.0 4.5 3.5
[31] 3.8 3.7 3.9 5.1 4.5 4.5 4.7 4.4 4.1 4.0 4.4 4.6 4.0 3.3 4.2
[46] 4.2 4.2 4.3 3.0 4.1

グループへの列の「分割」が機能しているようです。しかし、断片を shapiro.test に渡す方法はまだわかりません。に分割するgroup_byのとは違うと思います。

次のような多くのバリエーションを試しました。

iris %>%
  group_by(Species) %>%
  select(Petal.Length) %>%
  summarise(shapiro.test)

そしてまた

iris %>%
  group_by(Species) %>%
  select(Petal.Length) %>%
  summarise_each(funs(shapiro.test))

 # Error: expecting a single value

各種の Petal.Lengths に対して 1 回、3 回dplyr実行するにはどうすればよいですか?shapiro.test()

4

2 に答える 2