2016-07-17 9 views
2

に一覧表示する追加これは - 私がやろうとするものは基本的であるR

$i 
    a b k mean_a mean_b 
1 1 3 A 2.0 6.0 
2 3 5 A 3.5 3.5 
3 4 7 A 4.5 5.0 
4 5 8 A 3.5 6.5 
5 6 9 A 3.5 7.5 

$l 
    a b k mean_a mean_b 
1 3 9 B 2.0 6.0 
2 4 2 B 3.5 3.5 
3 5 3 B 4.5 5.0 
4 2 5 B 3.5 6.5 
5 1 6 B 3.5 7.5 

をしかし、私はステップを行うための、より巧妙な方法があると仮定2+ 3。少なくともそれはここでlapplyの最初の引数の名前属性を使用する方法について推論するかもしれないより簡単だ100個の変数...

+0

それはあなたが望むものを完全には明らかではありません。あなたは各リストのためにa、bのためにrowMeansを使いますか? – Maiasaura

+0

あなたは各リスト要素に同じ列を追加するだけですか? 'cols < - c( 'a'、 'b'); lapply(nnは、関数(x)はCBIND(X、\ 'COLNAMES < - \'(sapply(nnは、関数(Y)rowMeans(Y [、COLS]))、paste0( 'mean_'、COLS)))) ' – rawr

+0

これはまさに私が探していたものです。私は前に 'colnames < - 'を見たことがありません。それは賢明だった。どうも。答えとして提出すれば、私はそれを受け入れるでしょう – Misha

答えて

1

のためにこれを繰り返すことは非常に面倒になります。

v <- setNames(c("a","b"), paste0("mean_", c("a","b"))) 

lapply(nn, cbind, 
    data.frame(lapply(v, function(x) rowMeans(sapply(nn, "[[", x)))) 
) 

結果:

$i 
    a b k mean_a mean_b 
1 1 3 A 2.0 6.0 
2 3 5 A 3.5 3.5 
3 4 7 A 4.5 5.0 
4 5 8 A 3.5 6.5 
5 6 9 A 3.5 7.5 

$l 
    a b k mean_a mean_b 
1 3 9 B 2.0 6.0 
2 4 2 B 3.5 3.5 
3 5 3 B 4.5 5.0 
4 2 5 B 3.5 6.5 
5 1 6 B 3.5 7.5 
関連する問題