2012-02-12 3 views
2

this one과 매우 비슷한 문제가 있지만 약간 더 복잡합니다.파일 이름 정보를 R의 요소로 사용하는 방법

특정 버킷의 특정 복제본에 대해 50 개의 관측치를 기록하는 csv 파일이 있습니다.

파일의 이름은 Genotype_Rep.csv이며 위에서 언급 한 해결책 덕분에 파일 이름에서 "Genotype"및 "Rep"를 추출하는 방법을 파악할 수있었습니다.

그러나 각 csv 파일에는 50 개의 레코드가 있기 때문에 위의 해결 방법에서는 작동하지 않는 모든 줄에 Genotype을 추가해야합니다.

예 : 각 파일이 하나 개의 관찰을 가질 때,하지만 내가 여러 줄에 추가해야하는 경우가 잘 정말 작동

#Assume that the names of the files in the wd has been assigned to 'filenames'. 
#Here's a dummy version: 

filenames <- c("A_1.csv", "A_2.csv", "B_1.csv", "B_2.csv") 

# extract ID from filename 
ids <- gsub("([A-Z])_[0-9].csv", "\\1", filenames) 

import <- mdply(filenames, read.csv) 
import$ID <- IDs[import$Var1] 
import$Var1 <- NULL 

. 의심 할 여지없이 아주 간단합니다. 누군가 나를 도울 수 있다면, 좋을 것입니다.

+0

당신이 조금 명확히 할 수 있습니까? "lines"== "rows"입니까? "... 그것을 여러 줄에 추가해야합니다 ..."에서 "그것"은 정확히 무엇입니까? –

답변

1

파일에서 여러 data.frames를 읽기 위해 mdply()를 테스트 할 때 파일 인덱스가 들어있는 열은 "Var1"이 아니라 "X1"입니다. 그래서

import$ID <- ids[import$X1] 
import$X1 <- NULL 

import$ID <- IDs[import$Var1] 
import$Var1 <- NULL 

를 교체하려고 (나는 또한 당신이 "IDS"를 사용하는 것은 아닙니다 "ID를"생각.)

+0

네, 맞습니다,하지만 근본적인 문제는 해결되지 않습니다 ... 수입은 파일 수만큼의 목록입니다. 새 데이터 프레임의 모든 행에 파일 정보를 추가하는 방법이 필요합니다. – alexwhan

+0

어쩌면 가져 오기가 어떻게 보이는지 알 수 있습니까? – flodel

+0

죄송합니다. flodel, 방금이 작업을 다시 시작했으며 완전히 옳았다는 것을 깨달았습니다. 정말 고마워! – alexwhan

관련 문제