2

次のような単純な2つのベクトルデータフレーム(長さ= 30)があります。

> mDF
    Param1 w.IL.L
1   AuZgFw    0.5
2   AuZfFw      2
3   AuZgVw   74.3
4   AuZfVw  20.52
5   AuTgIL   80.9
6   AuTfIL  193.3
7   AuCgFL    0.2
8   ...

各行を使用して、から取得したベクトルの名前を持つ30個の単一値の数値ベクトルを形成したいmDF$Param1ので、次のようにします。

> AuZgFw       
[1] 0.5     

溶かして鋳造してみましたが、もっと簡単な方法があるのではないかと思います。

4

1 に答える 1

5

最も簡単/最短の方法はapply assign、行をオーバーすることです。

mDF <- read.table(textConnection("
Param1 w.IL.L
1   AuZgFw    0.5
2   AuZfFw      2
3   AuZgVw   74.3
4   AuZfVw  20.52
5   AuTgIL   80.9
6   AuTfIL  193.3
7   AuCgFL    0.2
"),header=T,stringsAsFactors=F)
invisible(apply(mDF,1,function(x)assign(x[[1]],as.numeric(x[[2]]),envir = .GlobalEnv)))

これには、データフレームの2番目の列を文字列との間で変換することが含まれます。 invisibleの出力を抑制するためだけにありapplyます。編集:文字列への/文字列からの強制を回避するために
使用することもできます:mapply

invisible(mapply(function(x,y)assign(x,y,envir=.GlobalEnv),mDF$Param1,mDF$w.IL.L))

于 2010-04-07T08:00:45.790 に答える