将剪贴板用作矢量R(windows)

将剪贴板用作矢量R(windows),r,R,我正试图以向量的形式读取R中的剪贴板。我有一个向量格式的数字列表,我以前尝试过复制和粘贴值,但在4000个数字之后R停止 # 1,2,3,4,5,6,7,8 <--example of what's on clipboard vector<-c(1,2,3,4,5,6,7,8) vector[5] #[1] 5 #1,2,3,4,5,6,7,8使用clipr软件包 > # clipboard: 1,2,3,4,5,6,7,8 > library(clipr) &

我正试图以向量的形式读取R中的剪贴板。我有一个向量格式的数字列表,我以前尝试过复制和粘贴值,但在4000个数字之后R停止

#   1,2,3,4,5,6,7,8  <--example of what's on clipboard

vector<-c(1,2,3,4,5,6,7,8)
vector[5]
#[1] 5

#1,2,3,4,5,6,7,8使用
clipr
软件包

> # clipboard: 1,2,3,4,5,6,7,8
> library(clipr)
> read_clip_tbl(sep=",", header=FALSE)
  V1 V2 V3 V4 V5 V6 V7 V8
1  1  2  3  4  5  6  7  8
此输出是一个数据帧,但现在只需获取其第一行:

tbl <- read_clip_tbl(sep=",", header=FALSE)
unlist(tbl[1,])
如果您不需要这些名称:

> unname(unlist(tbl[1,]))
[1] 1 2 3 4 5 6 7 8
编辑 事实上,您不需要
clipr
。你可以做:

> read.table(file="clipboard", sep=",")
  V1 V2 V3 V4 V5 V6 V7 V8
1  1  2  3  4  5  6  7  8

使用
clipr
软件包

> # clipboard: 1,2,3,4,5,6,7,8
> library(clipr)
> read_clip_tbl(sep=",", header=FALSE)
  V1 V2 V3 V4 V5 V6 V7 V8
1  1  2  3  4  5  6  7  8
此输出是一个数据帧,但现在只需获取其第一行:

tbl <- read_clip_tbl(sep=",", header=FALSE)
unlist(tbl[1,])
如果您不需要这些名称:

> unname(unlist(tbl[1,]))
[1] 1 2 3 4 5 6 7 8
编辑 事实上,您不需要
clipr
。你可以做:

> read.table(file="clipboard", sep=",")
  V1 V2 V3 V4 V5 V6 V7 V8
1  1  2  3  4  5  6  7  8

我的用例通常在Excel和R之间工作,在这种情况下@Stéphanelant的答案是有效的。(事实上,我倾向于使用
read.table(file='clipboard',header=F)
(或
=F
)而不是
readClipboard()
),因为它在几乎所有情况下对我都很有效

但是,如果您的字符串是非表格式的,如在文字逗号分隔的字符串中,您可以使用以下方法拆分它:

# clipboard: 1,2,3,4,5,6,7,8
s <- strsplit(readClipboard(), ",")
str(s)
# List of 1
#  $ : chr [1:8] "1" "2" "3" "4" ...
然后

如果条目数始终相同(即CSV),例如一行

1,2,3,4,5

和多行,例如

1,2,3,4,5
11,12,13,14,15
进入


从这里开始,它可以是
unlist
ed、
as.matrix
ed,或者你想要的任何东西,尽管
unlist
将按列而不是按行进行。

我的用例通常在Excel和R之间工作,在这种情况下@Stéphanelant的答案是有效的。(事实上,我倾向于使用
read.table(file='clipboard',header=F)
(或
=F
)而不是
readClipboard()
,因为它在几乎所有情况下对我都很有效

但是,如果您的字符串是非表格式的,如在文字逗号分隔的字符串中,您可以使用以下方法拆分它:

# clipboard: 1,2,3,4,5,6,7,8
s <- strsplit(readClipboard(), ",")
str(s)
# List of 1
#  $ : chr [1:8] "1" "2" "3" "4" ...
然后

如果条目数始终相同(即CSV),例如一行

1,2,3,4,5

和多行,例如

1,2,3,4,5
11,12,13,14,15
进入


从这里开始,它可以是
unlist
ed、
as.matrix
ed,或者任何你想要的,尽管
unlist
将按列而不是按行执行。

你注意到
readClipboard()
返回一个包含所有内容的字符串吗?你可能需要
strsplit(readClipboard(),“,”)
,或者在结果向量上使用
作为.numeric
作为.integer
。您可能会发现
clipr
包很有用,尤其是
read\u clip\u tbl
。哎呀,太棒了。@dash2
read.table(file=“clipboard”)
实际上就足够了。您注意到
readClipboard()
正在返回一个包含所有内容的字符串?您可能需要
strsplit(readClipboard(),“,”
,或者在结果向量上使用
as.numeric
as.integer
。您可能会发现
clipr
包很有帮助,尤其是
read\u clip\u tbl
。哎哟-太棒了。@dash2
read.table(文件=“剪贴板”)
实际上已经足够了。