1

それぞれ 69 行 13 列の 23 要素で構成されるリストがあります。また、リストの各要素に対して複数の列に計算を適用する必要があります。

簡単な例として、私のリストは次のようになります。

>list
>$`1` 
>       a       b     c 
>1    2.1    1.4    3.4 
>2    4.4    2.6    5.5 
>3    2.6    0.4    3.0 
... 

>$`2` 
>      a       b        c 
>70    5.1    4.9    5.1 
>71    4.4    7.6    8.5 
>72    2.8    3.5    6.8 
... 

私がやりたいことはz = (a-b) / c 、各要素 ($ 1、$ 2...、 $ 23)のようなものです

次のコードを試しました:

for( i in 1:23) {
z = (list[[i]]$a - list[[i]]$b) / list[[i]]$c }

これにより、1566 の値ではなく、49 の値しか得られませんでした。

私のコードのどこが間違っていて、それを修正できるのか誰にもわかりませんか? どうもありがとうございました!

4

2 に答える 2

2

function でそれを行うことができますlapply()。以下は、すべてのデータ フレームの列が同じ名前であると仮定した例です。

ll<-list(data.frame(a=1:3,b=4:6,c=7:9),
         data.frame(a=1:3,b=6:4,c=7:9),
         data.frame(a=1:3,b=4:6,c=9:7))

lapply(ll, with, (a-b)/c)
于 2013-08-26T10:40:41.783 に答える