R - 管(“pbcopy”)列没有粘贴排列

时间:2012-02-03 17:13:44

标签: r pipe pbcopy

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

但是,使用该功能进行复制和粘贴时,粘贴时可变列标题不能正确排列。

数据(取自我碰巧看到的流动数据示例):

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 

这使得尾随列没有列名。

有没有办法确保复制到clipboard的数据是否已正确对齐并标记?

2 个答案:

答案 0 :(得分:4)

行号在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")

答案 1 :(得分:1)

您可能只想将参数col.names=NA添加到您对write.table()的调用中。它具有将空字符串(空白列名称)添加到第一列的标题行的效果。

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

要查看差异,请比较这两个函数调用:

write.table(data[1:2,], sep="\t")
# "id"    "views" "comments"      "category"
# "1"     5019    148896  28      "Artistic Visualization"
# "2"     1416    81374   26      "Visualization"

write.table(data[1:2,], sep="\t", col.names=NA)
# ""      "id"    "views" "comments"      "category"
# "1"     5019    148896  28      "Artistic Visualization"
# "2"     1416    81374   26      "Visualization"