2017-05-15 4 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は、1つの要素の文字列でありますNA。さらに、最初の割り当てがfile_nameの場合、引用符で囲まれていない文字ベクタに設定しますが、それをデータで上書きします(ループのすべての反復で前の手順で作成したデータが失われます)。 (そのような複数の薬剤データフレームに操作を適用する方が簡単かもしれませんしかし、私はまた、リスト内のすべてのデータを置くことについて考えることをお勧めします

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

関連する問題