2013-05-21 4 views
0

Я читаю файл в формате SPSS (.por), очищая его в R, а затем экспортируя в виде чистого CSV-файла. Можно ли сохранить код, который я использую, для чтения/очистки/экспорта данных, чтобы сохранить его вместе с данными? Другими словами, я хочу, чтобы иметь возможность загрузить файл данных в какой-то более поздний момент и иметь возможность вспомнить, как именно он был создан.сохранить данные, код вместе?

+0

выезд [видео # 016] (http://www.twotorials.com/) :) –

ответ

3

Если вы хотите, чтобы сделать все это с консоли, вот хак:

foo<-attributes(myfunc)$srcref 
write.table(as.character(foo),'myfunc.txt') 

Edit: ответить на вопрос Павла, вот выход из одного из моих «игрушек». Элементы каждой строки (один элемент на пару кавычек) разделяются на вкладку.

"x" 
"1" "function(x, numdig=3, na.rm=TRUE,printit=TRUE)" 
"2" "{" 
"3" " x<-as.vector(x)" 
"4" " if (na.rm) x <- x[!is.na(x)]" 
"5" " skewx<-theskew(x)" 
"6" " kurtosisx<-thekurt(x)" 
"7" " #allstats<-list(min=min(x), max=max(x), mean=mean(x), median=median(x),sdev=sd(x), skew=theskew(x), kurtosis=thekurt(x))" 
"8" " #looks nicer w/ dataframe rather than pure list" 
"9" " allstats<-data.frame(cbind(min=min(x), max=max(x), mean=mean(x), median=median(x),sdev=sd(x), skew=theskew(x), kurtosis=thekurt(x)),row.names='')" 
"10" " #too long for one line" 
"11" " if(printit)" 
"12" "  {" 
"13" "  print(format(allstats[1:4],digits=numdig))" 
"14" "  print(format(allstats[5:7],digits=numdig))" 
"15" " }" 
"16" " return(invisible(allstats))" 
"17" " }" 

Я не пытался найти консоль хак, чтобы преобразовать этот текст обратно в коде функции, но я уверен, простой gsub('"','',textobject[,2]) будет работать.

+0

+1, как бы это выглядело для небольшого примера? –

+0

Привет Карл ... Я не уверен, что понимаю, что здесь происходит. Не могли бы вы рассказать немного? – user702432

+0

@ user702432 - Я использую 'атрибуты' для извлечения некоторой информации« включено »в любое закрытие, иначе функцию, объект. В этом случае атрибут «srcref» содержит исходный код для функции. Добро пожаловать в объектно-ориентированное программирование! :-) –

4

Просто сохраните набор файлов, а .R файл с кодом R, в por файл с данными, SPSS, и csv файл с данными, все, начиная с таким же названием:

spam.R 
spam.por 
spam.csv 

К транспортируйте их, вы можете закрепить эти файлы на spam.zip.

В качестве альтернативы, вы можете добавить код R, как комментарии выше данные:

# here R code 
# Some more code 
here the csv data 

read.table будет автоматически пропускать эти строки, как они начинают с # (стандартным комментарием характером read.csv).

+0

Это довольно аккуратно, Пол. Благодарю. – user702432

Смежные вопросы