我正在尝试分析调查数据。该调查共有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))
}
答案 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')