R - 分裂矩阵运行多个统计检验

时间:2014-05-21 19:17:32

标签: r matrix split

我正在尝试分析调查数据。该调查共有60个项目,每个项目的评分为1-5分。在干预前后对参与者进行了调查。我想看看他们的回复是否从前到后发生了变化。

我订购了我的数据,因此第1行是问题1预测试,第2行是问题1后测试等。这些是计数(例如,问题1预测试8人回答5,在Likert量表上)。像这样:

    X1  X2  X3  X4  X5
1   0   1   2   1   8
2   0   0   1   2   10
3   0   0   4   5   4
4   0   0   2   5   6

因此,我有160行数据(60个问题各占2个)。为了在每个问题上运行统计数据(比如费希尔测试),我需要将每个问题都作为自己的矩阵。所以,我需要将数据拆分成这样的东西:

      X1 X2 X3 X4 X5
[1,]  0  1  2  1  8
[2,]  0  0  1  2 10
      X1 X2 X3 X4 X5
[1,]  0  0  4  5  4
[2,]  0  0  2  5  6

我使用isplitRows命令将其工作,但该命令似乎不能保存矩阵。有谁知道如何保存这些?或者对isplitRows命令产生的小矩阵运行测试?这是我目前的代码。它很好地展示了我想要的东西,但我无法弄清楚如何使用它。

   #tools needed
library(iterators)
library(itertools)
#read data
primatedata<- read.delim("~/Desktop/primate attitudes/pairedforr.txt", header=T)
#take out the first two columns which are not numerical
data=primatedata[,-c(1,2)]
#convert to matrix
dm<-as.matrix(data)
#split into matrices by question (to compare time 1 and 2)
it <- ihasNext(isplitRows(dm, chunkSize=2))
while (hasNext(it)) {
 print(nextElem(it))
}

1 个答案:

答案 0 :(得分:1)

我不明白你想要做什么,但我认为你正在寻找一个简单的分裂:

split(mat,rep(seq(1,nrow(mat)/2),each=2))

$`1`
  X1 X2 X3 X4 X5
1  0  1  2  1  8
2  0  0  1  2 10

$`2`
  X1 X2 X3 X4 X5
3  0  0  4  5  4
4  0  0  2  5  6

mat的位置:

mat <- read.table(text='    X1  X2  X3  X4  X5
1   0   1   2   1   8
2   0   0   1   2   10
3   0   0   4   5   4
4   0   0   2   5   6')
相关问题