2016-09-25 11 views
0

私がしたいことは、ファイル名の最初の部分である "filename"というRの値を設定することです。ファイル名としての値の設定と呼び出しR

ファイル名< - 「E14_AD_4hr_」

は、私はその後、Rスクリプトを介して作成され、両方の名前とコールベクトルにこの「ファイル名」の値を使用します。 bashの$を使用し

、構文は次のようになります。

ファイル名< - "E14_AD_4hr_"

$ filename_Asz1 < - read.tableを(「〜/書類/ 1608_10_MiSeq /無題のフォルダを2/E14-AD-4_S20_L001/Filtered_by_quality/E14-AD-4_S20_L001_Asz1/methylation.tsv "引用= "\""、comment.char = "") など

しかし、これは私だけ与えますRの誤り。

スクリプトを正しく実行するには、手動でファイル名の最初の部分を入力する必要があります。これは痛みがあり、非常に面白くありません(スクリプトがもっとありますが、最初の行しか投稿していません)。

E14_AD_4hr_Asz1 < - read.tableを( "〜/書類/ 1608_10_MiSeq /無題のフォルダ2/E14-AD-4_S20_L001/Filtered_by_quality/E14-AD-4_S20_L001_Asz1/methylation.tsv"、引用= "\"」、 comment.char =「」)

基本的に私が求めているものです誰もがRで、このように名前を設定して呼び出すために正しい構文を知っていますか?

感謝。

+0

複数のファイルを読み込んでいる場合は、1つのリストに保持する方がよいでしょう。 "Asz1、Asz2、AszN"という名前のリスト内の各データオブジェクト。この[post](http://stackoverflow.com/questions/11433432/importing-multiple-csv-files-into-r)を参照してください。 – zx8754

答えて

-2

私はあなたはassignを探していると信じています。

prefix = "E14_AD_4hr_" 

var_name = sprintf("%s_Asz1", prefix) 
assign(var_name, read.table(...)) 

あなたは、関数の内部で割り当てて起動する場合は、あなたが挿入environmentに注意する必要がある場合がありますので注意してください。もちろん、常に.GlobalEnvに割り当てることも、parent.env()を呼び出してスタックフレーム内の1つのレイヤーにジャンプすることもできます。

これらの生成された名前を後で呼び出す必要がある場合は、おそらくparseevalが必要です。たとえば、変数名に10個の乱数を格納した場合:

prefix = "E14_AD_4hr_" 

var_name = sprintf("%s_Asz1", prefix) 
assign(var_name, rnorm(10)) 

# Get the string value back 
print(var_name) 
[1] "E14_AD_4hr__Asz1" 

# Convert to a language expression 
> print(parse(text = var_name)) 
expression(E14_AD_4hr__Asz1) 

# Evaluate in the current frame 
> print(eval(parse(text = var_name))) 
[1] -0.31945098 -0.54377885 -0.27967344 1.06523260 1.56782875 -0.64311208 0.02052175 -0.32418446 
[9] 1.85739602 0.59076400 
関連する問題