【问题标题】:R - spliting matrix to run multiple statistical testsR - 拆分矩阵以运行多个统计测试
【发布时间】:2014-05-21 19:17:31
【问题描述】:

我正在尝试分析调查数据。该调查有60个项目,每个项目都以1-5的李克特量表评分。该调查是在干预前后对参与者进行的。我想看看他们的回复是否从 pre 变为 post。

我对我的数据进行了排序,因此第 1 行是问题 1 的前测,第 2 行是问题 1 的后测,等等。这些是计数(例如,问题 1 的前测 8 人回答了李克特量表上的 5)。像这样:

    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))
}

【问题讨论】:

    标签: r matrix split


    【解决方案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')
    

    【讨论】:

    • 附带说明,如果输入 mat 是一个矩阵,那么代码似乎会产生不同的结果。如果是data.frame,就是描述的那样。
    • @beginneR 好点。(+1)。你仍然可以使用类似的东西:lapply(split(as.matrix(mat),rep(seq(1,nrow(mat)/2),each=2)),matrix,nrow=2)
    • agstudy,感谢您添加 matrix 方法(确实产生了结果)。我想知道该怎么做。
    • @beginneR 欢迎您。尽管。我不确定这是不是最好的方法。
    • 谢谢大家,这很有帮助。我确实希望它们在一个矩阵中,所以 agstudy 的代码最适合我。
    猜你喜欢
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多