【发布时间】:2020-02-04 19:27:09
【问题描述】:
我有一个包含 31 列 (V1:V31) 的大型数据框和大量具有不同 V1:V31 组合的行。 NA 表示该变量何时不是组合的一部分。下面的示例是我的数据的一个子集,其中只有前 8 个变量和前 5 个组合。我将每个变量的值分为低/中/高。
V1 V2 V3 V4 V5 V6 V7 V8
1 Low Low High <NA> <NA> <NA> <NA> <NA>
2 Low Low <NA> High <NA> <NA> <NA> <NA>
3 Low Low <NA> <NA> High <NA> <NA> <NA>
4 Low Low <NA> <NA> <NA> <NA> High <NA>
5 Low Low <NA> <NA> <NA> <NA> <NA> High
我试图找到的是具有一个值(低/中/高)的变量与另一个变量的值(低/中/高)相关联的次数。
例如:
当 V1 低时,V2 低/中/高的频率是多少?
当 V1 中时,V2 低/中/高的频率是多少?
当 V1 高时,V2 低/中/高的频率是多少?
当 V2 低时,V3 低/中/高的频率如何?
等等。
预期结果:
V1low <- data.frame()
Low Mid High
V2 11 3 4
V3 45 5 34
V4 3 67 5
V5 6 45 5
V1mid<- data.frame()
Low Mid High
V2 11 3 4
V3 45 5 34
V4 3 67 5
V5 6 45 5
V1high<- data.frame()
Low Mid High
V2 11 3 4
V3 45 5 34
V4 3 67 5
V5 6 45 5
V2low<- data.frame()
Low Mid High
V3 11 3 4
V4 45 5 34
V5 3 67 5
V6 6 45 5
我该如何解决这个问题?
使用@dario 的解决方案进行编辑:
> results <- table(Pvart2$V1, Pvart2$V2, Pvart2$V3, Pvart2$V4, useNA="always",deparse.level = 2)
> results
, , Pvart2$V3 = High, Pvart2$V4 = High
Pvart2$V2
Pvart2$V1 High Low Med <NA>
High 0 0 0 0
Low 0 0 0 0
Med 0 0 0 0
<NA> 0 0 0 2
在高于两个维度的情况下,每个数据帧的条件变得过高,导致结果过多。上面的示例在 V3 为高电平且 V4 为高电平时查找 V1 和 V2 的值。但是在我拥有的 2700 行组合中,这个条件永远不会满足。成对方面也会产生很多我无法快速查看的数据。对于每个低 V1,像预期结果这样的东西会更易于管理,它告诉我每个变量 V1 与多少低/中/高相关联。
【问题讨论】:
标签: r dataframe associations