【问题标题】:How do i convert an R matrix to Excel so that all values in the R-matrix are in separate cells in Excel?如何将 R 矩阵转换为 Excel,以便 R 矩阵中的所有值都位于 Excel 中的单独单元格中?
【发布时间】:2019-05-25 16:18:48
【问题描述】:

我无法将 R 矩阵导出到 Excel,而 R 矩阵的值在 Excel 的单独单元格中导出。

当我使用 write.csv 或 write.table 函数并尝试在 Excel 中打开输出时,每一行的值都会合并到 Excel 中的一个单元格中。所以 Excel 中的每个随机单元格看起来像这样:[0.33,0.24,0.23,02] 而我希望每个值都在单独的单元格中,如下所示:[0.33] [0.24] [0.23] 等。

          [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]
[1,] 1.0000000 0.8662618 0.9990604 0.9966197 0.9995365 0.9958028 0.9475572 0.9977010
[2,] 0.8662618 1.0000000 0.8568601 0.8846999 0.8524181 0.8930027 0.8778416 0 .8630592
[3,] 0.9990604 0.8568601 1.0000000 0.9965658 0.9994639 0.9947839 0.9501188 0.9977547
[4,] 0.9966197 0.8846999 0.9965658 1.0000000 0.9952404 0.9969191 0.9614838 0.9950432
[5,] 0.9995365 0.8524181 0.9994639 0.9952404 1.0000000 0.9941026 0.9432181 0.9974717
[6,] 0.9958028 0.8930027 0.9947839 0.9969191 0.9941026 1.0000000 0.9587064 0.9972479
[7,] 0.9475572 0.8778416 0.9501188 0.9614838 0.9432181 0.9587064 1.0000000 0.9581845
[8,] 0.9977010 0.8630592 0.9977547 0.9950432 0.9974717 0.9972479 0.9581845 1.0000000

我使用了这些功能:

write.csv(cosmatBB, "2005cossims.csv")
write.table(cosmatBB, "cossimssTabelPoging.csv", sep=",")

但我在 Excel 中没有得到想要的输出。

提前致谢。

【问题讨论】:

  • 嗯。不知道你是怎么做到的!从您在这里的情况来看,尚不清楚这是 R 问题还是 Excel 问题。如果您提供一个我们可以尝试重现的更简单的示例,我们可以为您提供更好的帮助。在这种情况下,从您的数据集的较小版本开始,例如sm <- cosmatBB[1:4,1:4],然后通过运行dput(sm) 并将输出复制到您的问题中给我们一个可以输入的版本。然后在sm 上运行您的write.csv 命令并将该文件的结果也复制到您的问题中。也许这样做之后,你甚至会明白答案!
  • 有关如何编写一个好的可重现示例的一般提示,请参阅此问题:stackoverflow.com/q/5963269/210673
  • 可能是由 Windows 区域设置引起的:您描述的问题在法国计算机上很常见,默认情况下 Excel 期望 CSV 文件具有分号分隔符而不是逗号。检查 Excel 需要什么(从 Excel 导出 CSV 文件并使用记事本检查其内容),并调整从 R 导出的内容(您也可以更改分隔符和小数点分隔符,或者您可以使用 write.csv2)。

标签: r excel matrix


【解决方案1】:

这听起来更像是一个 Excel 问题,而不是 Aaron 指出的 R 问题。

根据我的经验,Excel“文本到列”中有一个按钮,可让您将具有多个变量的一列转换为多列。有手册here

【讨论】:

    【解决方案2】:

    有几种方法可以做到这一点。

    首先您可以使用write.csv2read.table; 作为分隔符

    write.table(cosmatBB, "2005cossims.csv", sep = ';', dec = '.')
    

    或使用 许多 excel-packages 之一

    library('openxlsx')
    write.xlsx(cosmatBB, "2005cossims.xlsx")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多