交互表 - 与宠物和房屋的案例

Rem*_*i.b 10 combinations interaction r

我有一份房屋清单和一份动物物种清单.

houses = c(1,1,2,3,4,4,4,4,5,6,5)
animals = c('cat','dog','cat','dog','rat', 'cat', 'spider', 'snake', 'cat', 'cat', 'rat')
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个函数,该函数返回一个上三角表,指示每只宠物,它被观察到的生活在同一个房子中的次数比其他动物物种.是否有意义?

对于上面的例子,表应该是这样的(希望没有错!):

    dog   rat   spider   snake
cat  1     2      1        1      
dog        0      0        0
rat               1        1
spider                     1
Run Code Online (Sandbox Code Playgroud)

注意:此函数应适用于任何两个相同长度的向量,无论它们是否包含数字或字符串

A5C*_*2T1 16

使用tablecrossprod:

out <- crossprod(table(houses, animals))
out[lower.tri(out, diag=TRUE)] <- NA
out
#         animals
# animals  cat dog rat snake spider
#   cat     NA   1   2     1      1
#   dog     NA  NA   0     0      0
#   rat     NA  NA  NA     1      1
#   snake   NA  NA  NA    NA      1
#   spider  NA  NA  NA    NA     NA
Run Code Online (Sandbox Code Playgroud)

由于输出是a,matrix您可以NA直接在print以下位置禁止打印值:

print(out,na.print="")
#         animals
# animals  cat dog rat snake spider
#   cat          1   2     1      1
#   dog              0     0      0
#   rat                    1      1
#   snake                         1
#   spider                         
Run Code Online (Sandbox Code Playgroud)