Ich habe eine Liste von 20 Unterlisten mit dem Namen pval
, jede Unterliste pval[[i]]
enthält mehrere Spalten. Ich mag eine neue Spalte hinzuzufügen pval[[i]]$class
zu markieren, ob das Element des Vektors causal_snp
in der Spalte erscheint X4
jede Unterliste, wenn ja, Zeichen 1 in der neuen Spalte, sonst 0.Verwenden Sie lapply, um eine Liste der Liste zu bearbeiten
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)
}
Die Schleife oben funktioniert gut, aber ich würde lapply statt for-Schleife die Funktion gerne nutzen, hier ist das, was ich versucht habe, aber die Ausgabe enthält nur die neue Spalte für jede Unterliste:
pval_bis <- lapply(pval, function(x) x$classe=ifelse(x$X4 %in% causal_snp, 1, 0))
Was kann ich ändern in lapply Funktion, um alle meine Spalten in der Unterliste zu behalten und die neue Spalte in jeder Unterliste hinzuzufügen? Vielen Dank.
Können Sie Daten zurückgeben müssen für ein reproduzierbares Beispiel? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – DeveauP