【问题标题】:turn matrix or data.frame into a string with line breaks将 matrix 或 data.frame 转换为带有换行符的字符串
【发布时间】:2017-11-28 16:27:43
【问题描述】:

需要一个将矩阵或 data.frame 转换为带有换行符的字符串的函数,使其“看起来”相同。

我可以写一个循环。有没有快速的解决方案?

数据

df <- mtcars[1:3,1:3]

               mpg cyl disp
Mazda RX4     21.0   6  160
Mazda RX4 Wag 21.0   6  160
Datsun 710    22.8   4  108

期望的结果

toStringFun(df)

new <-" mpg cyl disp\n21.0   6  160\n21.0   6  160\n22.8   4  108"
cat(new)

编辑

请注意:列应该与正确的间距很好地对齐

【问题讨论】:

  • 您可能需要在帖子中提供这些详细信息,因为目前看来您需要一个函数。其他细节非常细微,只有仔细观察才能识别出来
  • 感谢您的反馈。我有点着急。下次我会在里面提供更多。

标签: r string dataframe matrix


【解决方案1】:

capture.output()paste 的组合将起作用:

s <- capture.output(print(df,row.names = FALSE))
s <- paste(s, collapse = "\n")
> s
[1] "               mpg cyl disp\nMazda RX4     21.0   6  160\nMazda RX4 Wag 21.0   6  160\nDatsun 710    22.8   4  108"

【讨论】:

  • 几乎完美。我不想要 ROWnames。我尝试将它们设置为 NULL
  • new = paste(capture.output(write.table(df, row.names = FALSE, sep = "\t")), collapse = "\n")
  • @John 完美解决方案。只需在代码中添加capture.output(print(df,row.names = F))
猜你喜欢
  • 2016-03-03
  • 1970-01-01
  • 2016-02-05
  • 2021-11-23
  • 2014-10-31
  • 1970-01-01
  • 2019-07-09
  • 1970-01-01
  • 2023-02-15
相关资源
最近更新 更多