2017-05-15 5 views
0

사용자가 특정 치료를 위해 업로드 할 마약 데이터의 수를 정의 할 수있게하려고합니다. 이 번호를 토대로 제 기능은 사용자가 해당 마약에 대한 데이터를 선택하고 변수를 사용하여 데이터를 저장하도록합니다. 1보다 큰 i와 하위 집합이 반환됩니다, 그래서 등 drug_1_data, drug_2_data, 가 나는 코드를 작성했지만 누군가가 당신의 예에서여러 변수로 대화 형 다중 파일 업로드 R

no_drugs <- readline("how many drugs for this therapy? Ans:") 
i=0 

while(i < no_drugs) { 
    i <- i+1 
    caption_to_add <- paste("drug",i, sep = "_") 
    mydata <- choose.files(caption = caption_to_add) # caption describes data for which drug 
    file_name <- noquote(paste("drug", i, "data", sep = "_")) # to create variable that will save uploaded .csv file 
    file_name <- read.csv(mydata[i],header=TRUE, sep = "\t") 
    } 

답변

0

도와주세요 수 작동하지 않습니다, mydata는 하나 개의 요소 문자열입니다 NA. 또한 첫 번째 할당 file_name에서 인용 부호가없는 문자 벡터로 설정 한 다음 데이터로 덮어 씁니다 (루프의 모든 반복에서 이전 단계에서 만든 데이터가 손실됩니다). 나 또한 (이 같은 여러 약물 dataframes에 작업을 적용하는 것이 더 쉬울 수 있습니다 목록에있는 모든 데이터를 퍼팅에 대해 생각하는 것이 좋습니다 그러나

file_name <- paste("drug", i, "data", sep = "_") 
assign(file_name, read.delim(mydata, header=TRUE) 
# I changed the function to read.delim since the separator is a tab 

: 나는 무엇을 당신이 원하는 것은의 라인에 뭔가 더 생각), 다음과 같이 사용 :

n_drugs <- as.numeric(readline("how many drugs for this therapy? Ans:")) 
drugs <- vector("list", n_drugs) 

for(i in 1:n_drugs) { 
    caption_to_add <- paste("drug",i, sep = "_") 
    mydata <- choose.files(caption = caption_to_add) 
    drugs[i] <- read.delim(mydata,header=TRUE) 

} 
+0

감사합니다. –

+0

도와 드리겠습니다. 스택 오버플로를 환영합니다. 이 답변 또는 다른 사람이 문제를 해결 한 경우이를 수락 한 것으로 표시하십시오. – Sraffa