유전자 발현 데이터를 포함하고있는 여러 파일이 있습니다. 각 파일에서 유전자 이름은 "Gene_symbol"열에 보관되고 표현식 측정 값 (실수)은 "RPKM"열에 보관됩니다. 파일 이름은 식별자 뒤에 _ 및 나머지 이름 ("expression.txt"로 끝남)으로 구성됩니다. 이러한 모든 파일을 R에 데이터 프레임으로로드하려면 각 데이터 프레임에 대해 원본 파일의 식별자로 "RPKM"열의 이름을 바꾸고 "Gene_symbol"에 의해 데이터 프레임을 하나의 열과 함께 하나의 큰 데이터 프레임에 조인합니다 "Gene_symbol"다음에는 각 파일의 표현 측정 값이있는 모든 열이옵니다. 각 파일은 원래 식별자로 레이블되어 있습니다.R에서 데이터 프레임 식별자의 일부로 데이터 프레임의 열 이름을 바꾸는 방법은 무엇입니까?
원본 파일의 식별자를 다음과 같이 개별 데이터 프레임의 이름으로 전송할 수있었습니다.
Data_id0001 <- data.frame(Gene_symbol=c("geneA","geneB","geneC"),RPKM=c(2.43,5.24,6.53))
Data_id0002 <- data.frame(Gene_symbol=c("geneA","geneB","geneC"),RPKM=c(4.53,1.07,2.44))
을하지만 그때 나는 id000x 비트와 RPKM 열 이름을 바꿀 수있을 것하지 않는 다음과 같이 내가 dataframes이 곳
files <- list.files(pattern = "expression.txt$")
for (i in files) {var_name = paste("Data", strsplit(i, "_")[[1]][1], sep = "_"); assign(var_name, read.table(i, header=TRUE)[,c("Gene_symbol", "RPKM")])}
그래서 지금은 무대에 있어요. (물론 완전히 자동화 된 방식으로 실제 시나리오에서 생성 할 모든 데이터 프레임을 반복합니다.)
데이터 프레임에 식별자 비트를 주석으로 저장하려고 시도했지만 루프 내에서 주석을 할당 할 수 없습니다. 어떤 도움을 주시면 감사하겠습니다
,
MCE
한 가지 방법은 우선 할당하기 전에 그것을 할 것입니다. 'tmp <- read.table (i, header = TRUE) [, c ("Gene_symbol", "RPKM")]; names (tmp) [2] <- strsplit (i, "_") [[1]] [1]; 할당 (var_name, tmp)'. 즉, 현재 환경에 여러 data.frames를 할당하는 것이 최상의 솔루션이 아닐 수도 있습니다. 'lapply'를 사용하여'list '에 데이터를 읽는 것이 R 형이 될 것입니다. 또한이 데이터에 액세스하는 방법이 명확하지 않습니다. 예를 들어'get'을 사용하거나 이름을 알고 계시거나'ls'와 같은 생각에 의지하십니까?) – GSee