2016-07-11 5 views
1

私は非常に長い要素のリストを持っており、これらの要素のそれぞれを個別にデータフレームとして保存したいと考えています。さて、私はそうしようとしています:リストの要素を個別にRに保存する方法は?

for (i in 1:length(mylist)) { 
    save.dta13(mylist[i], file=paste0(names(mylist)[i], ".dta")) 
} 

しかし、それは動作しているようです、任意のアイデア?

+0

おそらく、[[ '使用したいです'' mylist [で] ''。 – lmo

答えて

0

我々はここでlist

lapply(names(mylist), function(nm) 
    save.dta13(mylist[[nm]], paste0(nm, ".dta"))) 
+0

エラーは発生しませんが何も起こりません。何が欠けていますか? – Floris

+0

@Floris 'save.dta13'はどのパッケージからのものですか? – akrun

+0

それはreadstata13からです – Floris

1

namesをループにlapplyを使用することができ、別の解決策(何akrunとは若干異なるが、掲載している)である

An example list 

L=list(mat1=matrix(c(1,2,3,4,5,6,7,8,9),3,3),mat2=matrix(c(1,2,3,4,5,6,7,8,9),3,3),mat3=matrix(c(1,2,3,4,5,6,7,8,9),3,3)) 

#Convert elements of list to a data frame 
L_DF = lapply(L,function(x)as.data.frame(x)) 

#Check the class of each element 
> class(L_DF$mat1) 
[1] "data.frame" 
> 


> class(L_DF$mat2) 
[1] "data.frame" 
> 

    > class(L_DF$mat3) 
[1] "data.frame" 
> 

    > names(L_DF) 
[1] "mat1" "mat2" "mat3" 
> 


#Save as dta 

> lapply(names(L_DF), function(x) { 
+  f <- L_DF[[x]] 
+  save(f, file=paste0(getwd(),'/', x, '.dta')) 
+ }) 
関連する問題