2016-04-26 14 views
0

pvalという20個のサブリストのリストがあり、各サブリストpval[[i]]には複数の列が含まれています。私は、ベクトルcausal_snpの要素が各サブリストの列X4に表示されるかどうかをマークするために新しい列pval[[i]]$classを追加する、新しい列でそうであれば、マーク1、それ以外0lapplyを使用してリストのリストを操作する

for (i in 1:20){ 
    pval[[i]]$class = ifelse(pval[[i]]$X4 %in% causal_snp, 1, 0) 
    pval[[i]]$class = as.factor(pval[[i]]$classe) 
} 

上記のループうまく動作しますが、私はlapply代わりに、forループの機能を使用したいのですが、ここで私が試したものですが、出力は各サブリストのための唯一の新しい列が含まれます。

pval_bis <- lapply(pval, function(x) x$classe=ifelse(x$X4 %in% causal_snp, 1, 0)) 

私は変更することができます何をすべての私の列をサブリストに保持し、各サブリストに新しい列を追加するためには、app関数で?ありがとう。

+0

を返却する必要がありますのためのデータを提供することができます再現可能な例? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – DeveauP

答えて

1

我々はOPのコードでtransform

lapply(pval, transform, classe = as.integer(X4 %in% causal_snp)) 

でカラムを作成し、lapplyを使用している場合は、割り当てた後、我々はx

lapply(pval, function(x) {x$classe=ifelse(x$X4 %in% causal_snp, 1, 0);x})