R - 管道 ("pbcopy")列未与粘贴对齐

标签 r pipe pbcopy

作为 question I wrote a few days ago 的后续行动,我终于弄清楚如何复制到剪贴板以粘贴到其他应用程序中(阅读:Excel)。

但是,当使用复制和粘贴功能时,变量列标题在粘贴时无法正确排列。

数据(取 self 碰巧正在查看的流动数据示例):

data <- read.csv("http://datasets.flowingdata.com/post-data.txt")

复制功能:

write.table(file = pipe("pbcopy"), data, sep = "\t")

加载后,数据如下所示:

    id  views comments               category
1 5019 148896       28 Artistic Visualization
2 1416  81374       26          Visualization
3 1416  81374       26               Featured
4 3485  80819       37               Featured
5 3485  80819       37                Mapping
6 3485  80819       37           Data Sources

存在没有列变量名称的行号(1, 2, 3, 4, ...)

使用 read.table(pipe("pbpaste")) 函数,它将正常加载回 R 中。

但是,当我将其粘贴到 ExcelTextEdit 中时,第二个变量的列名称将位于第一个变量列名称槽中,如下所示:

id  views   comments    category    
1   5019    148896      28          Artistic Visualization
2   1416    81374       26          Visualization
3   1416    81374       26          Featured
4   3485    80819       37          Featured
5   3485    80819       37          Mapping
6   3485    80819       37          Data Sources 

这使得尾随列没有列名。

有没有办法确保复制到剪贴板的数据正确对齐和标记?

最佳答案

R data.frame 中的行号没有列名称。它们不在原始数据集中,但除非您抑制它,否则它们会被放入剪贴板的输出中。该选项的默认设置为 TRUE,但您可以覆盖它。如果您想要这样的列作为命名列,您需要创建它。发送到 Excel 时尝试此操作。

df$rownums <- rownames(df)
edf <- df[ c( length(df), 1:(length(df)-1))]   # to get the rownums/rownames first
write.table(file = pipe("pbcopy"), edf, row.names=FALSE, sep = "\t")

关于R - 管道 ("pbcopy")列未与粘贴对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132608/

相关文章:

r - 当每组 n 不同时过滤 n 行分组数据框

c - 如何将输出重定向到 C 语言中的文件?

c - c linux中的管道连接3个进程以执行命令

posix - 管道、 fork 和​​非阻塞 IPC

macos - GIT - 如何在 OSX 上不使用鼠标复制 SHA?

r - 如何将数据框的名称传递给 Excel 工作表(使用 xlsx 包)

c - R: 如何让.C 调用更新输出变量?

R 以编程方式读取目标