我从我的数据构建的列表中有一个混乱的行为序列。从这个行为列表中,我想创建一个列联表,每个转换从序列中的一个步骤到下一个步骤。一旦我有了这张桌子,我想把它与我的实际观察数据进行比较。基本上比较一个列联表和另一个列表。我遇到过一个问题,如果有一个行为状态只发生一次,并且碰巧被随机分配到第一个位置,我的列联表不包含一个列或行(从行为到那个行为的转换)没有发生)。那么阵列是不一致的,例如观察应变表到洗牌的列联表。
示例
Pbehav1<- 0.9
Pbehav2<- 0.1
Pbehav3<- 0
Pbehav4<- 0
Pbehav5<- 0
Pbehav6<-0
Pbehav7<-0
Pbehav8<-0
Pbehav9<-0
Pbehav10<-0
Trans<-10
Behavno<-2
behaviourlist<-c(rep("a", round(Pbehav1*Trans)), rep("b", round(Pbehav2*Trans)), rep("c", round(Pbehav3*Trans)),rep("d", round(Pbehav4*Trans)), rep("e", round(Pbehav5*Trans)), rep("f", round(Pbehav6*Trans)),rep("g", round(Pbehav7*Trans)), rep("h", round(Pbehav8*Trans)), rep("i", round(Pbehav9*Trans)),rep("j", round(Pbehav10*Trans)))
random<-sample(behaviourlist)
random
[1] "b" "a" "a" "a" "a" "a" "a" "a" "a" "a"
random1<-random[1:(length(random)-1)]
random2<-random[2: length(random)]
shuffledcontingencytable <- table(random1, random2)
shuffledcontingencytable
random2
random1 a
a 8
b 1
行为表的另一个改组更有可能产生:
shuffledcontingencytable
random2
random1 a b
a 7 1
b 1 0
我需要所有洗牌的列联表包含行和列(由每个行为发生的概率确定--- Pbehav1&lt; - 0.9 Pbehav2&lt; -0.1),如果没有发生转换则填充0。这是将混洗的列联表与观察到的(固定的)列联表进行比较的循环的一部分。
我真的很感激任何帮助,我是R的新手,并且在这几天里一直在努力。
谢谢!