1

stataデータ(data.dta)をデータとして保存し、関数をR使用してデータをロードし、関数を使用しpasteて名前を割り当てようとしています。getpaste

library(foreign)
getwd()
"C:/Users/Vista/Documents/project"
year<-2010
income2010x.dta<-read.dta("data.dta")
save(income2010x.dta,file="income2010x.rda")
load( paste0( "income" , year , "x.rda" ) )
z <- get( paste0( "income" , year , "x.dta" ) )  # works
z <- get( paste0( "income" , year , "x.rda" ) ) # doesn't work 
z
Error in get(income2010x.rda) : object 'income2010x.rda' not found
ls()
income2010x.dta
...

income2010x.dtaこれらの手順の後、オブジェクトとして保存されていることがわかりましたが、income2010x.rdaそうではありません。だから、z <- get( paste0( "income" , year , "x.rda" ) )動作しませんでした。何か案が?

4

2 に答える 2

1

income2010x.dta<-read.dta("data.dta")

ワークスペース内でed と呼ばれる data.frame を作成しincome2010x.dtaます。

saveを使用すると、多くのオブジェクトを保存できますload。それらを保存すると、保存したときと同じ名前が付けられます。

saveRDS単一のオブジェクトを保存し、readRDSそれを別の名前で読み取るために使用できます

saveRDS(income2010x.dta,file="income2010x.rda")
income2010x.rda <- readRDS('income2010x.rda')

そうは言っても、なぜ2つのコピーが必要なのか、またはget同じオブジェクトの3番目のコピーを作成するために使用しているのか理解できませんz

于 2013-01-10T23:57:56.660 に答える
1

これを行う場合:

load( paste0( "income" , year , "x.rda" ) )

.... (「取得」または「アクセス」または「回復」の口語的な意味で) 保存されたときに付けられた名前のオブジェクト (またはオブジェクト) を取得します。この場合、「income2010x.dta」という名前のオブジェクトがありますが、「income2010x.rda」という名前のオブジェクトはないため、R 関数の制限された意味でこの「取得」します。

z <- get( paste0( "income" , year , "x.rda" ) ) 

....あなたが観察したように...「うまくいきません」。

于 2013-01-11T00:26:50.137 に答える