Liste de liste dans le cadre de données

J’ai une donnée qui est générée comme ceci:

> dat1  dat2 <- data.frame(V1 = sample(c(0,1), 5, replace = TRUE), V2 = sample(c(40:45), 5, replace = TRUE)) 

Ce que je veux faire, c’est obtenir un bloc de données contenant une liste de liste.

 > hiv $hiv.dat1 $hiv.dat1$V1[[1]] [1] 1 1 1 1 1 $hiv.dat1$V2[[1]] [1] 41 42 43 40 44 $hiv.dat2 $hiv.dat2$V1[[1]] [1] 0 1 1 0 0 $hiv.dat2$V2[[1]] [1] 42 43 40 44 43 

Mais pourquoi cette ligne de commande n’a pas réussi à créer cela?

 > hiv <- list(hiv.dat1 = as.list(dat1), hiv.dat2 = as.list(dat2)) 

Surtout, il donne “$ hiv.dat1 $ V1” au lieu de “$ hiv.dat1 $ V1 [[1]]”.

Comment pouvons-nous corriger cela? J’ai besoin de cette structure de données particulière requirejse pour un package spécifique (ROCR).

Il semble que vous souhaitiez que chaque élément du bloc de données devienne sa propre liste (de longueur un); à la place, votre code transforme chaque bloc de données en une liste contenant les éléments du bloc de données. Vous devez appliquer la fonction de list à chaque élément individuellement avec lapply .

 hiv <- list(hiv.dat1 = lapply(dat1, list), hiv.dat2 = lapply(dat2, list)) 

Seul le type de list peut être

  • nested (c.-à-recurse)

  • contenir des objects de types et de longueurs différents

Donc, en résumé, pas d’imbrication de trames de données, mais vous pouvez emstackr différentes trames de données dans une liste.

(Et s’il vous plaît ne pas crosspost ici et sur r-help.)