2013-11-14 3 views
44

Я хочу сохранить данные в файл .RData.Как сохранить файл данных в .RData?

Например, я хотел бы сохранить в 1.RData с двумя файлами csv и некоторой информацией.

Здесь У меня есть два CSV файлы

1) file_1.csv contains object city[[1]] 
2) file_2.csv contains object city[[2]] 

и дополнительно сохранять другие ценности, страны и населения следующим образом. Итак, я думаю, мне нужно сделать объекты «город» из двух файлов csv в первую очередь.

Структура 1.RData может выглядеть следующим образом:

> data = load("1.RData") 

> data 
[1] "city" "country" "population" 

> city 
    [[1]]    
    NEW YORK   1.1 
    SAN FRANCISCO 3.1 

    [[2]] 
    TEXAS   1.3 
    SEATTLE   1.4 

> class(city) 
    [1] "list" 

> country 
    [1] "east" "west" "north" 

> class(country) 
    [1] "character" 

> population 
    [1] 10 11 13 14 

> class(population) 
    [1] "integer" 

file_1.csv и file_2.csv имеют кучу строк и столбцов.

Как создать этот тип RData с csv-файлами и значениями?

ответ

38

Есть два способа сделать это: save или save.image

Если вы хотите сохранить все в R сессии легко:

save.image(file="1.RData") 

Если вы не хотите, чтобы сохранить все, вы необходимо будет указать все объекты, которые вы хотите сохранить:

save(city, country, file="1.RData") 
+12

Это приятный ответ. Дополнительная строка с соответствующей инструкцией 'load()' сделала бы ее лучше ИМО. –

67

В качестве альтернативы, если вы хотите сохранить отдельные объекты R, я рекомендую нам ing saveRDS.

Вы можете сохранить объекты R с помощью saveRDS, а затем загрузить их в R с новым именем переменной, используя readRDS.

Пример:

# Save the city object 
saveRDS(city, "city.rds") 

# ... 

# Load the city object as city 
city <- readRDS("city.rds") 

# Or with a different name 
city2 <- readRDS("city.rds") 

Но если вы хотите сэкономить много/все объекты в рабочей области, используйте ответ Manetheran в.

+0

Интересно. Я не знал «saveRDS», хотя это также базовый R ... Я всегда использовал решение Manetheran. – cryo111

+3

Я не знаю, почему это более широко не рекомендуется/известно. Обычно это гораздо лучшее решение, чем 'save' /' load'. –

+1

@KonradRudolph Почему 'saveRDS' лучше? С 'save/load' вы используете' save (object, file) 'и' newObject <- load (file) '. С помощью RDS вы используете 'saveRDS (объект, файл)' и 'newObject <- readRDS (файл)'. Они кажутся мне похожими, но за несколько лишних нажатий клавиш используются «saveRDS» и «readRDS». Я предполагаю, что у меня что-то не хватает. –

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