web-dev-qa-db-ja.com

データファイルを.RDataに保存する方法は?

データを.RDataファイルに保存したい。

たとえば、2つのcsvファイルといくつかの情報とともに1.RDataに保存したいと思います。

ここでは、2つのcsvファイルがあります

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

さらに、次のように他の値、国、および人口を保存します。だから、最初に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.csvfile_2.csvには多数の行と列があります。

Csvファイルと値でこのタイプのRDataを作成するにはどうすればよいですか?

59
user2913161

あるいは、個々のRオブジェクトを保存する場合は、saveRDSを使用することをお勧めします。

saveRDSを使用してRオブジェクトを保存し、readRDSを使用して新しい変数名でRにロードできます。

例:

# 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の答えを使用してください。

85
ialm

Rセッションからオブジェクトを保存するには、次の3つの方法があります。

Rセッションのすべてのオブジェクトを保存する:

save.image() 関数は、Rセッションに現在あるすべてのオブジェクトを保存します。

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

これらのオブジェクトは、 load() 関数を使用して新しいRセッションに再度ロードできます。

load(file="1.RData")

Rセッションでいくつかのオブジェクトを保存する:

すべてではなく一部のオブジェクトを保存する場合は、 save() 関数を使用できます。

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

繰り返しますが、これらは load() 関数を使用して別のRセッションにリロードできます。

load(file="1.RData") 

単一のオブジェクトを保存する

単一のオブジェクトを保存する場合は、 saveRDS() 関数を使用できます。

save(city, file="city.rds")
save(country, file="country.rds") 

readRDS() 関数を使用してこれらをRセッションにロードできますが、結果を目的の変数に割り当てる必要があります。

city <- readRDS("city.rds")
country <- readRDS("country.rds")

ただし、これは、必要に応じてこれらのオブジェクトに新しい変数名を付けることができることを意味します(つまり、それらの変数が新しいRセッションに既に存在するが、異なるオブジェクトを含む場合):

city_list <- readRDS("city.rds")
country_vector <- readRDS("country.rds")
54
Scott Ritchie

必要に応じて追加機能を追加するだけです。名前付きの場所に変数を含めることができます。たとえば、日付識別子

date <- yyyymmdd
save(city, file=paste0("c:\\myuser\\somelocation\\",date,"_RData.Data")

これは、いつ実行されたかを常にチェックできることでした

0
Sajjad M