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

时间:2016-10-08 17:00:22

标签: r string function character shortcut

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

  • 例如:a,b,c,d,e,f,g,h,i,j

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

  • 例如:'a','b','c','d','e','f','g','h','i','j'

是否有将外部文字转换为字符串字符的功能或快捷方式?

示例:

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

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

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

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

2 个答案:

答案 0 :(得分:1)

这是一件简单的事情:

我首先复制a,b,c,dR

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

然后你可以玩它。例如:

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

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

答案 1 :(得分:0)

以下是使用read.table和剪贴板(如herehere所示)的简单解决方案:

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

  2. 使用以下代码:

    read.table("clipboard", head = T, sep = z)
    
    • 其中z为逗号分隔的",",制表符分隔的"\t"等。
  3. 使用scan也是一个不错的选择:

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

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

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

    如果您只是简单地复制文本(特别是如果您只想将其直接复制到脚本中),那么扫描方法就足够了,并且更加透明。&#34;