8

read.delim我有一个包含以下数据的data.frame(例如,使用从数据文件中读取):

'data.frame':   10 obs. of  3 variables:
 $ x : int  1 2 3 4 5 6 7 8 9 10
 $ y1: num  3 5 1 8 2 4 5 0 8 2
 $ y2: num  1 8 2 1 4 5 3 0 8 2

我现在正在 R 中寻找一个函数,它接受变量 ( data) 并打印出一个可能的命令,该命令创建一个类似data. 在这种情况下,它应该打印出:

data <- data.frame(
  x=c(1:10)
  , y1=c(3,5,1,8,2,4,5,0,8,2)
  , y2=c(1,8,2,1,4,5,3,0,8,2)
)

R中是否有这样的功能。

在 MySQL 中存在例如命令SHOW CREATE TABLE tbl_name,它

显示创建命名表的 CREATE TABLE 语句。

我正在为 R 中的变量寻找类似的东西。

4

2 回答 2

20

我想你正在寻找dput

> dput(data)
structure(list(x = 1:10, y1 = c(3, 5, 1, 8, 2, 4, 5, 0, 8, 2), 
    y2 = c(1, 8, 2, 1, 4, 5, 3, 0, 8, 2)), .Names = c("x", "y1", 
"y2"), row.names = c(NA, -10L), class = "data.frame")


> data0<-structure(list(x = 1:10, y1 = c(3, 5, 1, 8, 2, 4, 5, 0, 8, 2), 
+     y2 = c(1, 8, 2, 1, 4, 5, 3, 0, 8, 2)), .Names = c("x", "y1", 
+ "y2"), row.names = c(NA, -10L), class = "data.frame")
> identical(data,data0)
[1] TRUE
于 2013-10-16T01:41:08.003 回答
5

dput是您可能正在寻找的基本功能。
我使用了一个包装函数,reproduce我在“如何制作可重现的示例”问题上分享了它。

# install.packages("devtools")
library(devtools)
source_url("https://raw.github.com/rsaporta/pubR/gitbranch/reproduce.R")

reproduce(myData, whole=TRUE)

这使:

 data <- structure(list(x = 1:10, y1 = c(3, 5, 1, 8, 2, 4, 5, 0, 8, 2),y2 = c(1, 8, 2, 1, 4, 5, 3, 0, 8, 2)), .Names = c("x", "y1","y2"), row.names = c(NA, -10L), class = "data.frame") 

您还可以输出选择的行、列等或其中的百分比。

有关该功能的进一步说明,请查看问题r faq

于 2013-10-16T01:52:35.887 回答