This is weird. I get this error
Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?
when I execute this code on a list
cc3 <- as.data.frame(table(cc2))
What could possibly be wrong?
this is a head of the list.
head(cc2)
V1
1: 174
2: 174
3: 211
4: 177106
5: 177106
6: 177106
Edit:
When I run, str(cc2)
I get this
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>
To sort a data frame in R, use the order( ) function. By default, sorting is ASCENDING. Prepend the sorting variable by a minus sign to indicate DESCENDING order.
atomic() function in R is used to check if an R object is atomic or not. When an R object is atomic it can be used to create atomic vectors. Note: R has six basic atomic vector types: logical, integer, real, complex, string (or character), and raw.
From the output of str(cc2)
, the variable inside of the data.table, V1, is itself a list. This means that cc2 is a nested list of length 1. The error is occurring because table
calls sort.list
, which requires an atomic vector as input.
Try using unlist
:
cc3 <- as.data.frame(table(unlist(cc2)))
unlist
will (recursively) extract elements from their list containers. So unlist(cc2)
will return a vector, which works directly with table
.
I solved it by unlisting cc2 unli <- unlist(cc2)
then converted it to df df<-as.data.frame(cc2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With