2017-11-21 10 views
1

바보 같은 말로, R 프로젝트에서 적절한 커밋을하지 않고 특정 문제를 해결하기 위해 새로운 data_frames를 작성했습니다. 실용적인 이름과 대부분의 그리스 알파벳을 살펴 보았으니 이제는 '보브', 'might.work', '거의'와 같은 data_frame 개체로 가득 찬 환경을 갖게되었습니다. 루핑 함수 (lapply 또는 기타)를 사용하여 환경의 각 데이터 프레임 객체에 대해 알 수있는 지표를 반환하고 싶습니다. 그런 다음 반품을 기준으로 정리/삭제할 수 있습니다.프로젝트 환경에 저장된 모든 특정 객체에 함수를 호출 할 수 있습니까?

그래서 R 프로젝트 환경의 모든 data_frames에 액세스하려면 lapply를 사용할 수 있습니까? 이 같은?

lapply(environment, function (x){ 
    if(is.dataframe(x)){ 
    dplyr::glimpse(x) 
} 
} 

감사합니다.

답변

3

환경

eapply(globalenv(), function(x) if (is.data.frame(x)) dplyr::glimpse(x)) 
+0

와우의 객체를 통해 쉽게 반복 eapply() 기능!, 이것은 완벽하다! 감사합니다. 그리고 생각하기 위해, 나는 단지 한 글자 밖에 없었습니다. – elliot

1

물론 가능!

lapply(ls(),function(x){ 
    o = get(x,envir = globalenv()) 
    cat("if"(is.data.frame(o),paste0(x," is a data frame!\n"),"Nope.\n")) 
}) 
  • ls() (기본적으로 글로벌) 환경에있는 모든 개체 이름을 나열합니다. 이 이후
  • 은 우리가 데이터 프레임의 경우
  • 가 그럼 난 밖으로 cat 값을 get하지만 (우리는이 시점에서 함수 환경에있어 이후) 지구 환경을 지정해야합니다 단지 이름입니다,하지만 당신은 할 수 o 개체로 원하는대로 수행하십시오.
0

다음 함수는 .GlobalEnv에 환경 environ에서 클래스 data.frame에서 상속 객체, 기본값을 반환합니다.

getDataFrames <- function(environ = .GlobalEnv){ 
    l <- ls(name = environ) 
    res <- NULL 
    for(i in seq_along(l)){ 
     r <- inherits(get(l[i], envir = environ), "data.frame") 
     if(r) res <- c(res, l[i]) 
    } 
    res 
} 

getDataFrames() 
관련 문제