2014-09-09 4 views
0

for 루프를 사용하면 r을 사용하여 110 만 행의 데이터 세트를 r을 가져 와서 데이터를보다 잘 처리하기 위해 각각 대략 10,000 행의 110 개의 테이블로 나눌 수있었습니다. 이제 각 테이블의 값을 다른 데이터 프레임 이름에 할당하는 for 루프를 실행하려고합니다.루프를 사용하여 다른 데이터 프레임으로 데이터 프레임의 변수 이름 읽기

내 테이블 이름은 다음과 같습니다

Pom_1 
Pom_2 
Pom_3 
... 

Pom_110

는 내가하고 싶은 것은 다음과 같은 루프를 만들 수 있습니다 :

for (i in 1:110) 
{ 
    Pom <- read.table(paste("Pom",i,sep = "_")) 
    for (j in 1:nrows(Pom)) 
    {do something} 
} 

그래서 나는 배열을 반복하고 싶지 "Pom"에 각 Pom 테이블의 값을 할당하면 Pom의 각 하위 섹션에서 for 루프를 실행할 수 있습니다. 이 문제는 read.table 함수가 맞지 않는 것 같습니다. 어떤 아이디어?

+0

나는 내 추측을 기반으로 다음과 같은 죄송 합니다만, 귀하의 접근 방식은 "귀하가 데이터를보다 잘 처리하도록"해야하는 것과 반대입니다. – Roland

+1

롤랜드와는 다르지만 문제는 무엇입니까? 정확히 무엇이 문제입니까? 오류가 있습니까? 이 테이블 이름은 작업 디렉토리의 실제 파일이거나 사용자 환경의 변수입니까? 파일 인 경우 끝에있는 파일 형식을 추가해야합니다. csv 파일처럼 read.csv ("Pom_1.csv")가 아닌 read.csv ("Pom_1") – DMT

답변

0

각 데이터 프레임을 통해 수행하고자하는 작업에 대한보다 구체적인 예를 들려 줄 수 있습니까? 당신은 가능하면 내부 루프를 사용하지 않아야하고 당신이 정말로 ?apply

nrow 대신 nrows

0

에보고를해야하는 경우는 예를 data.frame을 사용하여 일반 솔루션입니다. 당신이 assign 찾고있는 기능은 확인이 도움말 페이지의 : 나는 당신의 테이블 전화로 문제를 내기 기꺼이

Pom = data.frame(x = rnorm(30)) #original data.frame 

n.tables = 3 # number of new data.frames you want to creat 

Pom.names = paste("Pom",1:3,sep="") # name of all new data.frames 

breaks = nrow(Pom)/n.tables * 0:n.tables # breaks of the original data.frame 

for (i in 1:n.tables) { 
    rows = (breaks[i]+1):breaks[i+1] # which rows from Pom are going to be assign to the new data.frame? 
    assign(Pom.names[i],Pom[rows,]) # create new data.frame 
} 

ls() 

[1] "breaks" "i"   "n.tables" "Pom"  "Pom.names" "Pom1"  
[7] "Pom2"  "Pom3"  "rows" 
+0

이고 실제로는 정말 좋습니다. 이러지 마. – Roland

+0

나도 그래,하지만 @ Forrest38는 우리에게 더 나은 대답을 제공하기에 충분한 정보를주지 못했다. 그것은 일을 끝내지 만, 그것이 나의 코드라면 나는 그렇게하지 않을 것이다. – Bernardo

0

는 Pom_1 가정 파일 확장자를 (지정되지 않은 것입니다 - Pom_110은 당신의 작업 디렉토리에있는 파일들은 read.table을 사용하고 있기 때문에 생각한 것입니다.

다음과 같은 방법으로 문제를 해결할 수있는

fileExtension<-".xls" #specify your extension, I assume xls 
for (i in 1:110) 
{ 
    tablename<-paste("Pom",i,sep = "_") 
    Pom <- read.table(paste(tablename, fileExtension, sep="")) 
    for (j in 1:nrows(Pom)) 
    {do something} 
} 
문제의 모든 설정하는 방법에 대한 몇 가지 가정이야 물론

하지만, 그것은 당신의 설명과 코드

관련 문제