Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将堆栈溢出查询中的数据导入R的代码_R - Fatal编程技术网

将堆栈溢出查询中的数据导入R的代码

将堆栈溢出查询中的数据导入R的代码,r,R,当我试图在Stack Overflow中回答一个关于R的问题时,我的大部分时间都花在了重建作为示例给出的数据上(除非问题作者已经足够好地将它们作为R代码提供) 所以我的问题是,如果有人只是问了一个问题,然后用以下方式给出了他的样本数据框: a b c 1 11 foo 2 12 bar 3 13 baz 4 14 bar 5 15 foo 您是否有技巧或函数可以轻松地将其导入R会话,而不必键入整个data.frame()指令 提前感谢您的任何提示 PS:如果我的问题标题中的术语“查询”不

当我试图在Stack Overflow中回答一个关于R的问题时,我的大部分时间都花在了重建作为示例给出的数据上(除非问题作者已经足够好地将它们作为R代码提供)

所以我的问题是,如果有人只是问了一个问题,然后用以下方式给出了他的样本数据框:

a  b   c
1 11 foo
2 12 bar
3 13 baz
4 14 bar
5 15 foo
您是否有技巧或函数可以轻松地将其导入R会话,而不必键入整个
data.frame()
指令

提前感谢您的任何提示

PS:如果我的问题标题中的术语“查询”不是很好,那么很抱歉,但是在堆栈溢出中,您似乎不能在问题标题中使用“问题”一词:-)

也许
textConnection()
就是您想要的:

R> zz <- read.table(textConnection("a  b   c
1 11 foo
2 12 bar
3 13 baz
4 14 bar
5 15 foo"), header=TRUE)
R> zz
  a  b   c
1 1 11 foo
2 2 12 bar
3 3 13 baz
4 4 14 bar
5 5 15 foo
R> 
R>zz-zz
a、b、c
111foo
2 12巴
3 13巴兹
4 14巴
5 15福
R>

它允许您将文本视为阅读的“连接”。您也可以只是复制和粘贴,但从剪贴板进行访问更依赖于操作系统,因此便携性较差

您还可以要求提问者使用哪种方式转储任何数据结构,而这种方式只能复制粘贴到R.e.g

> zz
  a  b   c
1 1 11 foo
2 2 12 bar
3 3 13 baz
4 4 14 bar
5 5 15 foo

> dput(zz)
structure(list(a = 1:5, b = 11:15, c = structure(c(3L, 1L, 2L, 
1L, 3L), .Label = c("bar", "baz", "foo"), class = "factor")), .Names = c("a", 
"b", "c"), class = "data.frame", row.names = c(NA, -5L))

> xx <- structure(list(a = 1:5, b = 11:15, c = structure(c(3L, 1L, 2L, 
+ 1L, 3L), .Label = c("bar", "baz", "foo"), class = "factor")), .Names = c("a", 
+ "b", "c"), class = "data.frame", row.names = c(NA, -5L))
> xx
  a  b   c
1 1 11 foo
2 2 12 bar
3 3 13 baz
4 4 14 bar
5 5 15 foo
>zz
a、b、c
111foo
2 12巴
3 13巴兹
4 14巴
5 15福
>dput(zz)
结构(列表a=1:5,b=11:15,c=c结构(3L,1L,2L,
1L,3L),.Label=c(“bar”,“baz”,“foo”),class=“factor”),.Names=c(“a”,
“b”,“c”,class=“data.frame”,row.names=c(NA,-5L))
>xx xx
a、b、c
111foo
2 12巴
3 13巴兹
4 14巴
5 15福

最新版本的R现在提供了比
textConnection
更低的按键选项,用于将列数据输入read.table和friends。面对这一点:

zz
  a  b   c
1 1 11 foo
2 2 12 bar
3 3 13 baz
4 4 14 bar
5 5 15 foo

你可以简单地插入:
countries只想添加这个,因为我现在经常使用它,我认为它非常有用。有一个包溢出(下面的安装说明),它具有读取复制的数据帧的功能。假设我从一个SO post开始,它包含如下所示的数据,但没有
dput
输出

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
现在,如果我直接复制数据,然后运行下面的

library(overflow)
soread()
# data.frame “mydf” created in your workspace
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa
# 5          5.0         3.6          1.4         0.2  setosa
# 6          5.4         3.9          1.7         0.4  setosa
我现在有一个名为
mydf
的数据帧,与我在全局环境中复制的数据帧相同,因此我不必等待OP发布其数据帧的
dput
。我可以使用
out
参数更改数据帧的名称,该参数(显然)默认为
mydf
。还有一些其他有用的函数用于处理包中的SO POST(如
sopkgs()
,它临时安装一个包,以便您可以帮助解答有关以前未安装的包的问题)

如果将
库(溢出)
放在
.Rprofile
中,则
soread()
可以非常快速地从SO帖子导入数据

溢出可从GitHub获得,并可与一起安装

library(devtools)
install_github("overflow", "sebastian-c")

啊,是的,太好了,谢谢!使用
zz@juba,
read,从剪贴板进行访问在我的系统上运行良好。table
还提供了一个
text
参数,因此无需创建连接
read.table(text=“a b c.
也应该可以。剪贴板不错!@juba注意,剪贴板afaik并不适用于所有系统。我相信(如果我错了,请纠正我)它是特定于Windows的。它在我的linux系统上运行良好。有一个“剪贴板”“连接手册页的
部分,包含详细信息:如果我理解正确,在windows下读取和写入剪贴板是可行的,在linux下读取是开箱即用的,而在linux上写入和在Mac OSX上读取/写入需要对Mac的
pipe()
进行特定调用(其中
?剪贴板
带您进入连接帮助页面):“Mac OS X用户可以使用管道(“pbpaste”)和管道(“pbcopy”、“w”)来读取和写入系统的剪贴板。”有效的使用方法是:
zz
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
library(overflow)
soread()
# data.frame “mydf” created in your workspace
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa
# 5          5.0         3.6          1.4         0.2  setosa
# 6          5.4         3.9          1.7         0.4  setosa
library(devtools)
install_github("overflow", "sebastian-c")