【问题标题】:Convert non symmetric matrix to square matrix将非对称矩阵转换为方阵
【发布时间】:2020-11-10 22:34:58
【问题描述】:

我有一个如下所示的非对称数据框:

我想将此数据帧转换为 R 中的方阵,但此刻我很迷茫。理想情况下,我希望结果看起来像这样,以便我可以在其他应用程序中使用它。 (注意:这只是具有超过 50 列的真实 df 的片段)。 我希望有人能帮帮忙。谢谢!

【问题讨论】:

标签: r matrix


【解决方案1】:

基于示例,我们可以遍历不是第一列的列,并执行==,使用+ 转换为二进制并更新数据集列

df1[-1] <- lapply(df1[-1], function(x) +(df1[[1]] %in% x & !is.na(x)))

【讨论】:

  • 其实经过检查我认为有问题,因为有些行到最后都只是0。可能是由于位置?正如您在示例中看到的那样,一切都非常混乱
  • @Amaranta_Remedios 我以为你想做元素比较。如果不是,请将其从 == 更改为 %in%
  • 它仍然没有捕捉到许多应该存在的名字。理想情况下,我想在 ID 中查找每个名称,如果在 x 列的(任何行)中找到它,则写 1。否则为 0。
  • @Amaranta_Remedios 你在做+(df1[[1]] %in% x &amp; !is.na(x)),因为之前是x %in% df1[[1]]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多