Как получить "код для создания переменной" из data.frame

У меня есть data.frame (например, чтение из файла данных с помощью read.delim), которая содержит следующие данные:

'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.

2 ответа

Решение

Я думаю, что вы ищете 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

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 вопрос

Другие вопросы по тегам