Comment puis-je obtenir le nom d'un cadre de données dans une liste? Bien sûr, Il existe une colonne dans chaque cadre de données qui passe par le même nom que la trame de données dans la liste. Comment puis-je obtenir ce nom Edit: Voici un exemple reproductible: P> get () code> obtient l'objet lui-même, mais je veux avoir son nom pour une utilisation dans une autre fonction. Voici le cas d'utilisation, au cas où vous préféreriez suggérer un travail autour de:
bynameofx code>?
noms (x) code> retournerait tout le vecteur. P>
df1 <- data.frame(value = rnorm(100), cat = c(rep(1,50),
rep(2,50)), idx = rep(letters[1:4],25))
df2 <- data.frame(value = rnorm(100,8), cat2 = c(rep(1,50),
rep(2,50)), idx = rep(letters[1:4],25))
mylist <- list(cat = df1, cat2 = df2)
lapply(mylist, head, 5)
3 Réponses :
J'utiliserais les noms de la liste dans cette mode:
l <- lapply(names(mylist), function(x) { ddply(mylist[[x]], c("idx", x), summarise,checkSum = sum(value)) }) names(l) <- names(mylist); l
llply (myList, .Fun = ddply, c (2,3), résumée, checksum = somme (valeur)) code> fonctionne aussi bien, mais peut être plus déroutant
@ Ran2 Je ne pense pas que les noms à utiliser varient de la liste à la liste.
Vous pouvez simplement utiliser des noms (liste) -> list_name, puis utiliser list_name [1], list_name [2], etc. Pour obtenir le nom de chaque liste. (Vous pouvez également avoir besoin comme.numérique (list_name [x]) si les noms de liste sont des numéros. P>
Cela ne fonctionne pas à moins que la liste n'avait les noms donnés en premier lieu
Voici l'équivalent dplyr