0

以下の機能は、私の目的に完全に対応しています。ディスプレイは素晴らしいです。今私の問題は、他のパターンに適合する他の変数で、何度も何度もそれを行うことができる必要があることです。

この例では、「q4a」の結果を出力しました。q4 < a - z > または q < 4 - 10 >< a - z > のようなパターンに従う一連の質問に対して出力できるようにしたいと考えています。 、自動的に。

指定された変数(この場合はq4a)が毎回変わるようにこれを繰り返す方法はありますか?

これが私の機能です:

require(reshape) # Using it for melt
require(foreign) # Using it for read.spss

d1 <- read.spss(...) ## Read in SPSS file

attach(d1,warn.conflicts=F) ## Attach SPSS data

q4a_08 <- d1[,grep("q4a_",colnames(d1))] ## Pull in everything matching q4a_X
q4a_08 <- melt(q4a_08) ## restructure data for post-hoc

detach(d1)

q4aaov <- aov(formula=value~variable,data=q4a) ## anova

前もって感謝します!

4

2 に答える 2

4

これが探しているものかどうかはわかりませんが、質問のリストを生成するには:

> gsub('^', 'q', gsub(' ', '', 
    apply(expand.grid(1:10,letters),1,
           function(r) paste(r, sep='', collapse='')
         )))
  [1] "q1a"  "q2a"  "q3a"  "q4a"  "q5a"  "q6a"  "q7a"  "q8a"  "q9a"  "q10a"
 [11] "q1b"  "q2b"  "q3b"  "q4b"  "q5b"  "q6b"  "q7b"  "q8b"  "q9b"  "q10b"
 [21] "q1c"  "q2c"  "q3c"  "q4c"  "q5c"  "q6c"  "q7c"  "q8c"  "q9c"  "q10c"
 [31] "q1d"  "q2d"  "q3d"  "q4d"  "q5d"  "q6d"  "q7d"  "q8d"  "q9d"  "q10d"
 [41] "q1e"  "q2e"  "q3e"  "q4e"  "q5e"  "q6e"  "q7e"  "q8e"  "q9e"  "q10e"
 [51] "q1f"  "q2f"  "q3f"  "q4f"  "q5f"  "q6f"  "q7f"  "q8f"  "q9f"  "q10f"
 [61] "q1g"  "q2g"  "q3g"  "q4g"  "q5g"  "q6g"  "q7g"  "q8g"  "q9g"  "q10g"
 [71] "q1h"  "q2h"  "q3h"  "q4h"  "q5h"  "q6h"  "q7h"  "q8h"  "q9h"  "q10h"
 [81] "q1i"  "q2i"  "q3i"  "q4i"  "q5i"  "q6i"  "q7i"  "q8i"  "q9i"  "q10i"
 [91] "q1j"  "q2j"  "q3j"  "q4j"  "q5j"  "q6j"  "q7j"  "q8j"  "q9j"  "q10j"
 ...

次に、分析の内部部分を、質問の接頭辞をパラメーターとして受け取る関数に変換します。

analyzeQuestion <- function (prefix)
{
  q <- d1[,grep(prefix,colnames(d1))] ## Pull in everything matching q4a_X
  q <- melt(q) ## restructure data for post-hoc

  qaaov <- aov(formula=value~variable,data=q4a) ## anova
  return (LTukey(q4aaov,which="",conf.level=0.95)) ## Tukey's post-hoc
}

さて、あなたの「q4a」変数がどこから来ているのかわかりません(で使用されてaov(..., data=q4a)いるように、そのビットについてどうすればよいかわかりません。しかし、これが役立つことを願っています.

2 つをまとめるには、自動生成した各プレフィックスに関数をsapply()適用するために使用できます。analyzeQuestion

于 2009-09-16T04:31:08.697 に答える
3

データセット全体を溶かしてから、variableその構成要素に分割することをお勧めします。次に、サブセットを使用して (たとえば) 質問 4 だけを簡単に確認できますsubset(molten, q = 4)

于 2009-09-16T12:36:10.843 に答える