Oplossing: object (lijst) kan niet worden geforceerd om "dubbel" te typen;


Een veel voorkomende fout die u in R kunt tegenkomen is:

 Error: (list) object cannot be coerced to type 'double'

Deze fout treedt op wanneer u probeert een lijst met meerdere elementen naar numerieke elementen te converteren zonder eerst de functie unlist() te gebruiken.

In deze zelfstudie worden de exacte stappen beschreven die u kunt gebruiken om deze fout op te lossen.

Hoe de fout te reproduceren

De volgende code probeert een lijst met meerdere items naar numerieke waarden te converteren:

 #create list
x <- list(1:5, 6:9, 7)

#display list
x

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9

[[3]]
[1] 7

#attempt to convert list to numeric
x_num <- as. numeric (x)

Error: (list) object cannot be coerced to type 'double'

Omdat we de functie unlist() niet hebben gebruikt, hebben we de foutmelding gekregen (list) kan niet worden geforceerd om „double“ te typen .

Hoe u de fout kunt oplossen

Om de lijst naar numeriek te converteren, moeten we ervoor zorgen dat we de functie unlist() gebruiken:

 #create list
x <- list(1:5, 6:9, 7)

#convert list to numeric
x_num <- as. numeric (unlist(x))

#display numeric values
x_num

[1] 1 2 3 4 5 6 7 8 9 7

We kunnen de functie class() gebruiken om te verifiëren dat x_num inderdaad een vector van numerieke waarden is:

 #verify that x_num is numeric
class(x_num)

[1] "digital"

We kunnen ook controleren of de originele lijst en de numerieke lijst hetzelfde aantal elementen bevatten:

 #display total number of elements in original list
sum(lengths(x))

[1] 10

#display total number of elements in numeric list
length(x_num)

[1] 10

We zien dat de twee lengtes overeenkomen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:

Oplossing in R: namen komen niet overeen met eerdere namen
Hoe op te lossen in R: contrasten kunnen alleen worden toegepast op factoren met 2 of meer niveaus
Hoe op te lossen in R: de lengte van een langer object is geen veelvoud van de lengte van een korter object

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert