Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中创建交叉引用表?_R_Cross Reference - Fatal编程技术网

如何在R中创建交叉引用表?

如何在R中创建交叉引用表?,r,cross-reference,R,Cross Reference,我正试图从一个长格式的数据集中创建一个交叉引用表,其中ID记录了花卉物种的偏好。交叉参考表应垂直和水平列出所有花卉,并根据数据集显示每种花卉与其他花卉相似的频率 dat <- data.frame( ID=rep(1:5, c(3,3,2,1,4)), Flower=c("Azalea","Begonia","Buttercup","Rose","Sunflower")[ c(4,2,5,2,1,3,4,3,1,5,4,3,2) ] ) # ID Flowe

我正试图从一个长格式的数据集中创建一个交叉引用表,其中ID记录了花卉物种的偏好。交叉参考表应垂直和水平列出所有花卉,并根据数据集显示每种花卉与其他花卉相似的频率

dat <- data.frame(
  ID=rep(1:5, c(3,3,2,1,4)),
  Flower=c("Azalea","Begonia","Buttercup","Rose","Sunflower")[
    c(4,2,5,2,1,3,4,3,1,5,4,3,2)
  ]
)

#   ID    Flower
#1   1      Rose
#2   1   Begonia
#3   1 Sunflower
#4   2   Begonia
#5   2    Azalea
#6   2 Buttercup
#7   3      Rose
#8   3 Buttercup
#9   4    Azalea
#10  5 Sunflower
#11  5      Rose
#12  5 Buttercup
#13  5   Begonia

dat一个简单的解决方案是使用
crossprod()/tcrosprod()
table()


一个简单的解决方案是将
crossprod()/tcrossprod()
table()
结合使用:


您能提供一个简单的数据集和所需的输出来说明您的问题吗?感谢您对数据请求的响应,但图像并不是很有帮助。我们必须把它全部重新输入。相反,请使用函数
dput
创建一个文本版本,我们可以直接剪切和粘贴。@G5W-我代表OP进行了编辑-预期的输出是现在唯一的图像部分。这应该足以轻松回答问题。您能提供一个简单的数据集和所需的输出来说明您的问题吗?感谢您对数据请求的响应,但图像没有太大帮助。我们必须把它全部重新输入。相反,请使用函数
dput
创建一个文本版本,我们可以直接剪切和粘贴。@G5W-我代表OP进行了编辑-预期的输出是现在唯一的图像部分。这应该足够轻松地回答这个问题了,这不是很重要吗。我很高兴我现在没有发布令人尴尬的复杂答案。我从未见过@thelatemail被难倒,我的世界正在崩溃:{@rawr-如果你在工作时坐在我身后,你会看到我每小时都被难倒。相信我,我只是另一个黑客:--《末日邮报》这是我从中学到的一个好把戏,虽然不经常使用。:)这不算什么。我很高兴我现在没有发布我令人尴尬的复杂答案。我从未见过《末日邮报》被难倒,我的世界正在崩溃:{@rawr-如果你在工作时坐在我后面,你会看到我每小时都被难倒。相信我,我只是另一个黑客:--)@thelatemail这是我从中学到的一个好把戏,虽然不经常使用。:)
crossprod(table(dat))

#           Flower
#Flower      Azalea Begonia Buttercup Rose Sunflower
#  Azalea         2       1         1    0         0
#  Begonia        1       3         2    2         2
#  Buttercup      1       2         3    2         1
#  Rose           0       2         2    3         2
#  Sunflower      0       2         1    2         2