从非对称数据帧中获取方阵

菲利普·拉米雷斯(Philippe Ramirez)

我是R的初学者。我有一系列有关已婚人士姓氏的数据。

    Id_mar  Wife  Husband
1      1    Smith Johnson
2      2    Smith  Carter
3      3    White  Carter
4      4    Wang   Smith
5      5    White  Carter

我需要以方矩阵的形式获取它(以便能够以各种方式对其进行操作)。因此,我想我必须首先将其转换为:

data.melt<-melt(dat.mar,id=c('Wife','Husband'))
dat.melt$value<-1    
dat.cast<-cast(dat.melt, Wife~Husband, length)

       Wife Carter Johnson Smith
    1 Smith      1       1     0
    2  Wang      0       0     1
    3 White      2       0     0

然后将其转换为矩阵:

dat.mat<-as.matrix(dat.cast)
      Carter Johnson Smith
Smith      1       1     0
Wang       0       0     1
White      2       0     0

但是现在,如何准确地添加列和行,以使行和列以正确的字母顺序得到方矩阵?看起来像这样:

      Carter Johnson Smith    Wang   White
Carter     0       0     0       0       0
Johnson    0       0     0       0       0
Smith      1       1     0       0       0
Wang       0       0     1       0       0
White      2       0     0       0       0
阿克伦

基于预期的输出,我们可以tablefactor转换的“妻子”和“丈夫”列使用(如评论中提到的@David Arenburg),同时将列levelssortedunique元素指定ed元素(“ Un1”)

 Un1 <- sort(unique(unlist(df1[-1])))
 table(factor(df1$Wife, levels=Un1), factor(df1$Husband, levels=Un1))
 #          Carter Johnson Smith Wang White
 # Carter       0       0     0    0     0
 # Johnson      0       0     0    0     0
 # Smith        1       1     0    0     0
 # Wang         0       0     1    0     0
 # White        2       0     0    0     0

或者我们可以使用mtabulatefrom qdapTools

 library(qdapTools)
 mtabulate(as.data.frame(t(df1[-1])))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从非对称数据帧中获取方阵

来自分类Dev

R中的非对称eta方阵

来自分类Dev

有效地重新排列非对称方阵

来自分类Dev

Android中的非对称RelativeLayout行为

来自分类Dev

如何删除numpy数组中的非对称对?

来自分类Dev

LINUX中的非对称路由问题

来自分类Dev

android中的RSA/非对称解密

来自分类Dev

如何基于另一个对称数据帧在 R 中创建对称数据帧

来自分类Dev

Terraform从非对称KMS密钥对获取公钥

来自分类Dev

在MATLAB中更有效的对称方阵的方式吗?

来自分类Dev

静态非对称加密

来自分类Dev

非对称加密

来自分类Dev

非对称衰减函数

来自分类Dev

NetworkX 非对称权重

来自分类Dev

在Shiny中创建涉及行和列的非对称布局

来自分类Dev

处理Web服务中的非对称标头

来自分类Dev

如何在Java中以非对称加密生成密钥对?

来自分类Dev

HTTPS使用非对称或对称加密?

来自分类Dev

非对称地图标记

来自分类Dev

Jasypt和非对称加密

来自分类Dev

Python:完整的非对称网格

来自分类Dev

JWT使用非对称加密

来自分类Dev

Android LinearLayout 非对称居中

来自分类Dev

从原始数据帧中获取多个数据帧

来自分类Dev

在对称数据帧中删除行和列满足条件

来自分类Dev

R中数据帧之间的对称百分比变化

来自分类Dev

Haskell:使用非对称构造函数的if-then-else块和数据

来自分类Dev

检查JSON数据元素值,如果多维非对称JSON结构为Null,则返回“”

来自分类Dev

从列表中获取长格式数据帧