我有一个带有一列值(由随机分配的处理)1、2、3的数据框,如下所示:

一,治疗
1,1
2,3
3,2
4,2
5,1
6,3
7.3
8.2
9,1
...


数据帧中3行的每个块包含三个可用值的排列,例如对于(1,3,2)上方的1-3行,对于4-6 (2,1,3)行,对于7-9 (3,2,1)行,等等。数据帧中的行数可被3整除。

我需要计算排列的发生-我该怎么做?

最佳答案

在下面的内容中,treatment是数据框中的该列(其长度是3的倍数)。仅使用您的示例数据,就有treatment <- c(1, 3, 2, 2, 1, 3, 3, 2, 1)。然后

M <- matrix(treatment, ncol = 3, byrow = TRUE)
radix <- 10 ^ (2:0)
ID <- M %*% radix
table(ID)

#132 213 321
#  1   1   1


也许更容易访问的版本是使用paste0为置换索引:ID生成ID <- apply(M, 1L, paste0, collapse = ""),但是这将比我上面对很长的treatment向量使用的矩阵向量乘法的效率低得多。

关于r - 如何计算数据帧中值序列的出现次数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51197936/

10-12 18:04
查看更多