2016-07-11 3 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')) 
+ })