1

4 つの異なる変数 ( V1, V2, V3, V4) があり、それらを簡単に繰り返し処理したい場合、使用できる 1 つの方法は ですfor(var in c(V1, V2, V3, V4))。関数を適用して、varそれが表す変数を返す方法はありますか? たとえば、この関数を呼び出すfと、コード

for(var in c(V1, V2, V3, V4))
  print(f(var))

印刷する必要がありますV1V2V3V4

そのような機能が存在する可能性は低いようですが、誰かがここに明確な答えを出すことを願っています.

4

3 に答える 3

3

私はよくこの状況に遭遇します。

私の戦略は、変数NAMESを反復処理してからを使用することgetです。

例えば:

for(v in c("V1", "V2", "V3", "V4")){
   print(v)

  # then to operate on the variable
  var <- get(v)
}

追加のボーナスは、forループをキックして、lapply代わりにナイスを使用できることです。

lapply(c("V1", "V2", "V3", "V4"),  print)


#- or -#

lapply(c("V1", "V2", "V3", "V4"), function(v) {
  print(v)
  someActionOn(get(v)))
})
于 2013-05-17T23:23:18.247 に答える
0

おそらく、変数を何らかの構造、たとえばリストにグループ化し、リストの要素をループしたい場合があります

v1=rnorm(1030)
v2=rnorm(1330)
v3=rnorm(130)
varlist=list(Vee1=v1,Bee2=v2,vi3=v3)

for(i in 1:length(varlist)) {  
   assign( paste( names(varlist)[i],
                  "meanish",
                  sep=""), 
           mean(varlist[[i]]))
 }

次に、ls()あなたが持っているものを見てください。

于 2013-05-17T21:04:56.323 に答える