Tenir compte de ce codelapply, rowSums et arguments passign
lapply(lst,rowSums)
lst
est une liste de cinq trames de données. Chaque trame de données a, par exemple, quatre colonnes et dix lignes. Je veux ajouter les valeurs des colonnes dans chaque ligne, cependant, je ne veux pas inclure la valeur de colonne un dans la somme.
je peux utiliser une boucle for
et le code ci-dessous:
lst_sum = list()
for (ii in c(1,5))
{
dummy <- lst[[ii]]
dummy <- rowSums(dummy[,seq(2,4,by = 1)])
lst_sum[[ii]] = dummy
}
Je voudrais utiliser lapply
ou une fonction similaire parce que je pense que les boucles for
semble laid et inefficace.
Essayez quelque chose comme 'lapply (LST, fonction (x) rowSums (x [-1]))'? Exemple plus reproductible pour ce dont vous avez besoin: 'df <- data.frame (x = 1:10, y = 1:10, z = 1:10); l = liste (df, df, df, df, df); lapply (l, function (x) rowSums (x [, -1])); ' – Gopala
Vouliez-vous dire' Reduce ("+", lst) 'Ce n'est pas clair sans un exemple reproductible Ou essayez' lapply (lapply (lst, "[", -1), rowSums) ' – akrun