在 R 中将复制的文本转换为字符串的快速方法?

Quick way to turn copied text to character strings in R?

我有一个从 R 外部复制的文本列表:

我想快速将每个单词(在本例中为字母)转换为字符串供 R 使用:

有没有将外部文本转成字符串字符的函数或快速方法?

示例:

> a,b,c,d
Error: unexpected ',' in "a,"

> function(a,b,c,d)
[1] 'a','b','c','d'

我知道一个简单的函数可能不起作用,因为它会假设非字符串是未知的 R 对象。但是可能有一些技巧可以使它起作用?

注意:我知道我可以在其他程序(例如记事本 ++)中相当快地执行此操作,但我想知道是否可以在 R 中快速执行此操作?

这里有一些简单的东西:

我先复制a,b,c,d然后在R:

z <- readClipboard()
z
[1] "a,b,c,d"

那你就可以玩玩了。示例:

strsplit(z, split = ",")
[[1]]
[1] "a" "b" "c" "d"

编辑: 这仅适用于 Windows。感谢@Gregor 的评论。

这是一个使用 read.table 和剪贴板(如 here and here 所示)的简单解决方案:

  1. 将文本或数据复制到剪贴板。

  2. 使用以下代码:

    read.table("clipboard", head = T, sep = z)
    
    • 其中 z "," 表示逗号分隔,"\t" 表示制表符分隔,等等。

使用 scan 也是一个不错的选择:

scan(text='a, b, c, d, e, f, g, h, i, j',what = "", sep=",", quiet=TRUE, strip.white = TRUE)

(来自 akrun 和 Rich Scriven 的评论)。


如果 table 带有标题(例如,从 MS Excel 复制的文本),read.table 方法会更快并且保持文本的结构。因此,如果您要复制具有结构的数据,请使用 read.table.

如果您只是简单地复制文本(特别是如果您只想将其直接复制到您的脚本中),那么扫描方法就足够了 "more transparent."