Fout: x moet atomair zijn voor ‘sort.list’

Dit is raar. Ik krijg deze foutmelding

Fout in sort.list(y) : ‘x’ moet atomair zijn voor ‘sort.list’
Heb je ‘sorteren’ op een lijst genoemd?

wanneer ik deze code op een lijst uitvoer

cc3 <- as.data.frame(table(cc2))

Wat kan er aan de hand zijn?

dit staat bovenaan de lijst.

head(cc2)   
V1
1:    174
2:    174
3:    211
4: 177106
5: 177106
6: 177106 

Bewerken:
Als ik ren, str(cc2)
Ik snap dit

Classes ‘data.table’ and 'data.frame':  149706 obs. of  1 variable:
$ V1:List of 149706
..$ : Named chr "174"
.. ..- attr(*, "names")= chr "V11"
..$ : Named chr "174"
 .. ..- attr(*, "names")= chr "V7"
 ..$ : Named chr "211"
  .. ..- attr(*, "names")= chr "V6"
 .. [list output truncated]
 - attr(*, ".internal.selfref")=<externalptr> 

Antwoord 1, autoriteit 100%

Van de uitvoer van str(cc2)is de variabele in de data.table, V1, zelf een lijst. Dit betekent dat cc2 een geneste lijst met lengte 1 is. De fout treedt op omdat tablesort.listaanroept, wat een atomaire vector als invoer vereist.

Probeer unlistte gebruiken:

cc3 <- as.data.frame(table(unlist(cc2)))

unlistzal (recursief) elementen uit hun lijstcontainers halen. Dus unlist(cc2)retourneert een vector, die rechtstreeks werkt met table.


Antwoord 2, autoriteit 41%

Ik heb het opgelost door cc2 unli <- unlist(cc2)te verwijderen en het vervolgens te converteren naar df df<-as.data.frame(cc2)


Antwoord 3

Ik had alleen unlist(myList) nodig voor een lijst die ik heb geconstrueerd met iteratief een lijst die ik heb geconstrueerd met index (myList[[i]] <- val) om mijn vergelijkingsfunctie naar keuze toe te kunnen passen (mediaan)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

20 − 1 =

Other episodes