2016-09-19 2 views
0

데이터 프레임 목록을 만드는 일부 코드를 R로 작성했습니다. 실행되는 동안 별도의 탭에 만든 각 데이터 프레임을 표시해야합니다. 데이터 프레임 및 목록은 모두의 라인을 따라, 루프에 대한 몇 가지 중첩에 의해 만들어집니다동적으로 변수 이름을 변경하지 않고 R에서 목록의 데이터 표시

df.list <- vector("list", length(e)) 
i <- 1 
for (...){ 
    data <- as.data.frame(stuff) 
    j <- 1 
    for (...){ 
    for (...){ 
     [loop stuff] 
     data[j,] <- [more stuff] 
    } 
    } 
    df.list[[i]] <- data 
    i <- i + 1 
} 

질문은 "보기"기능을 넣어 곳입니다. 목록을 통해 실행되고 데이터 프레임을 표시하는 끝에 두 번째 루프를 추가하면 모두 "df.list"라는 이름이 붙습니다. df.list [[i]] < - 데이터 바로 앞에 View (데이터)를 넣으면 모두 "데이터"라는 이름이 붙습니다. 그들 모두가 같은 이름을 갖는 것은이 맥락에서 받아 들일만한 상황이 아니다. 이상적으로는, 내가 원하는 문자열을 그들에게 지명 할 수는 있지만, 다른 데이터 프레임과 합리적으로 이해할 수 있고 구별 할 수있는 것을 해결할 것입니다.

변수 이름을 동적으로 변경하여 목록 색인 인 datai로 해결할 수 있음을 알고 있지만 거의 항상 잘못된 방법으로 작업을 수행합니다.

+0

'df.list'에는 "이름"이 있습니까? 내가 뭔가를 놓치지 않는다면,'for (nm in names (df.list)) View (df.list [[nm]], nm)'또는 루프 안에서'i' 이름에 접근/생성 할 수있다. 그것을 View에 건네줍니다. –

+0

아니, 네 말이 맞아. 어떻게 든 View (데이터, 이름)를 호출 할 수 있다는 사실을 놓쳤습니다. View 함수가 이름 인수를 취하지 않을 것이라고 생각했습니다. 이것을 답으로 쓰면 받아 들일 것입니다. –

답변

1

그래서 나는 닫을 수 있습니다 :

보기() 함수는 선택적 인수로 이름을 걸립니다! View(data, name)data을 표시하고 탭을 호출하십시오 name

2

은 내가 eval(parse())를 사용하여 대답을 게시하지 않을 거라고 생각하지만, 내가이 일하기 위해 생각할 수있는 유일한 방법이이 동적으로 변수 이름을 변경 "의 의미가 무엇인지

# sample data 
df.list = list(mtcars, iris) 
# name your list however you want the tabs to be named 
names(df.list) = c("mtcars data", "this is iris") 

for (i in seq_along(df.list)) eval(parse(text = sprintf("View(df.list[['%s']])", names(df.list)[i]))) 

을 데이터가 목록 인덱스인지 확인하십시오. "그리고 나는 이것이 거의 항상 틀림에 동의합니다. 이 경우에도이를 수행하는 것이 가장 편리한 방법 일 수 있습니다. 코멘트에서 솔루션을 게시

+0

이것은 내가 염두에 두었던 것과 대략 같습니다. 나는 이것이 당신이하는 방식이라는 것을 나에게 불고있는 것입니다 ... 다른 방법, 즉 적절하지 않다고 생각하지 못합니다. –

+0

저는 누군가가 더 좋은 생각을 가지고 있기를 희망하면서 잠시 동안 이것을 열어 두려고합니다. –

+1

나는 누군가가 희망한다! – Gregor

관련 문제