私はみんな!ループと関数のエラーのためにR
私は博士研究のためにRの世界を発見しています。解析を簡略化するためにループを実装する際にいくつかの問題があります。
マイデータフレームは、次のとおりです。
'data.frame': 3581 obs. of 8 variables:
$ Date : Factor w/ 7 levels "03-03-17","10-02-17",..:
$ Experimentator: Factor w/ 9 levels "BURLET","DECHAUD",..:
$ Origin : Factor w/ 3 levels "FRANCE","JAPAN",..:
$ City : Factor w/ 6 levels "MONTPELLIER",..:
$ Lineage : Factor w/ 27 levels "L21","L22","L26",..:
$ Sex : Factor w/ 2 levels "Female","Male":
$ ccr : int 1183 1813 1866 1745 1210 1463 2477 1506
最初の6は私の要因と最後の私の量的変数です。で :それは私には難しいforループで
by(data$ccr, c(data$Date, data$Sex, data$Lineage), shapiro.test())
Error in tapply(seq_len(3581L), list(`c(data$Date, data$Sex,
data$Lineage)` = c(2L, : the arguments must have the same length
ので、私は書くことを試みた 私は例えばshapiro.testをしたいときは、同じ時間でいくつかの要因で作業する必要があります。私は私のループをインクリメントする方法がわからない
for(sex in levels(data$Sex)){
for(date in levels(data$Date)){
for(lineage in levels(data$Lineage)){
shapiro.test(data$ccr[,lineage])
}
}
}
府...任意の助け
ありがとうございました!
でデータを受け入れることに注意してくださいあなたは、少なくともあなたがここで使用しているパッケージ(複数可)を教えなければなりません。 –
すべての3581レコードが必要ですか? –
'by'では、グループ化変数(' INDICES')は ''要因のリスト ''でなければなりません。 by(mtcars、list(mtcars $ vs、mtcars $)、function(dat)shapiro.test(dat $ mpg)) '(あなたの場合) am)、function(dat)shapiro.test(dat $ mpg)) 'を実行します。 – Henrik