0
assign
を使用して、文字の名前ベクトルに値を割り当てることができます。我々は(ベクトル/行列/リストすることができtarget
)target
の第一の要素を変更したい場合は インデックス付きの変数variableに値を代入する
assign("target",1:5)
たとえば
については、我々はそれをどのようにすればよいですか?target
は行列でもかまいませんので、1つの要素、1つの行または1つの列を変更できます。私は
assign("target[1]",99)
を使用する場合にのみtarget[1]
という名前の新しいオブジェクトを生成し、値がここで99ある
target[1] <- 99
のような何かをしたい は
# This function is meaningless, just used to show my situation
# variable_name is a character
example_function <- function(variable_name){
assign(variable_name,1:5)
if(rnorm(1)>1){
variable_name[1] <- 99 #This will not work and I just need some function to achive this purpose
}
}
example_function("justAname")
シンプルかつ裁判例です
'target [1] < - 99'は問題なく動作します...どうしたのですか? –
変数名は内部の関数によって生成されるので、その変数の要素の1つを変更したいときは正確な変数名を知らない。 –
'assign()'関数は、その名前。これは、 'assign(" target "、1:5)の後に、1から5の値を持つ' target'という新しい変数が存在することを意味します。 'print(target)'を実行すると、新しい変数が見えます。したがって、 'target [1] < - 99'を実行すると' target'が通常の変数として扱われ、代入を行うことができます。試してみてください。 –