2017-04-21 5 views
1

이것은 내 첫 번째 게시물이므로 모든 불편 함을 사과드립니다.각 루프의 결과를 새 데이터 프레임으로 저장합니다.

나는 getProfileData() 함수를 사용하여 cBioPortal에서 RNAseq 데이터를 추출하려고합니다. 이 목록의 요소에서 생성 된 매개 변수를 사용하여 내 목록의 각 요소에 대해이 함수를 호출하고 싶습니다. 나는이 기능으로 불릴 수있는 도서관, 예제 암 및 표본 유전자를 포함시켰다.

library(cgdsr) 
mycgds = CGDS("http://www.cbioportal.org/") 

cancers1 = c("cesc_tcga", "ov_tcga", "ucs_tcga", "ucec_tcga") 
genes = c("PTCH1", "PTCH2") 

mRNAseqExtractor <- function(){ 
    for(i in cancers1){ 
    i_RNAseq <- paste(i, "_rna_seq_v2_mrna", sep="")   
    i_all <- paste(i, "_all", sep="")   
    getProfileData(mycgds, genes, i_RNAseq, i_all) } } 

mRNAseqExtractor() 

기본적으로,이 루프를 반복 할 때마다 새로운 데이터 프레임이 getProfileData (mycgds, hedgehog_genes, i_RNAseq, i_all)의 출력을 저장할.

추신. 비슷한 게시물을 찾고 있었지만 각 반복마다 새로운 글로벌 데이터 프레임을 생성하는 것을 찾을 수 없었습니다.

+0

단일 데이터 포인트에 대한 프로파일 데이터를 추출하는 기능 'F (암)'작성한 다음에'lapply'를 사용을 데이터 프레임 (또는'getProfiledata'의 출력이 무엇이든간에)의리스트를 생성하십시오. '출력 <- lapply (cancers1, f)' –

답변

3

lapply를 사용하여 데이터 프레임 목록을 반환 할 수 있습니다.

profiles <- lapply(cancers1, function(i) { 
    i_RNAseq <- paste(i, "_rna_seq_v2_mrna", sep="")   
    i_all <- paste(i, "_all", sep="")   
    getProfileData(mycgds, genes, i_RNAseq, i_all) 
}) 

그러면 이런 개별 데이터 프레임을 액세스 할 수

# access first data frame 
print(profiles[[1]]) 
관련 문제