【问题标题】:Reshape categorical data that looks like a correlation matrix重塑看起来像相关矩阵的分类数据
【发布时间】:2016-04-19 08:39:28
【问题描述】:

我有一个 df:

cc pair_no
US   1
US   1
DE   2
UK   2
US   3
PL   3
US   4
US   4

我想创建一个这样的矩阵,基本上是为了计算每个国家组合的配对数:

    US  UK  PL DE
US  2
UK  0   0   
PL  1   0    0
DE  0   1    0   0

我尝试过使用,但它没有给出想要的结果。

Table(df$cc,df$pair_no)

有人可以帮忙吗?

【问题讨论】:

  • 成对是指行中的国家(i,i + 1)?
  • @DiegoAgher 对是具有相同对号的对

标签: r matrix reshape r-corrplot


【解决方案1】:

你可以试试:

table(data.frame(cc1=df$cc[c(TRUE,FALSE)],cc2=df$cc[c(FALSE,TRUE)]))
#    cc2
#cc1  DE PL UK US
#  DE  0  0  1  0
#  PL  0  0  0  0
#  UK  0  0  0  0
#  US  0  1  0  2

数据

df<-structure(list(cc = structure(c(4L, 4L, 1L, 3L, 4L, 2L, 4L, 4L
), .Label = c("DE", "PL", "UK", "US"), class = "factor"), pair_no = c(1L, 
1L, 2L, 2L, 3L, 3L, 4L, 4L)), .Names = c("cc", "pair_no"), class = "data.frame", row.names = c(NA, 
-8L))

【讨论】:

  • 谢谢 nicola,我认为这对我有用,只是我需要将它以矩阵形式呈现,以便之后能够制作热图。您可以修改答案以将结果作为矩阵给出吗?
  • as.matrix(table(data.frame(cc1=df$cc[c(T,F)],cc2=df$cc[c(F,T)])))跨度>
  • 一个有两个维度的table一个矩阵。无论如何,您可以按照@DiegoAgher 的建议致电as.matrix,但您不需要这样做。
猜你喜欢
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
相关资源
最近更新 更多