Hoe op te lossen in r: na's geïntroduceerd door dwang


Een veelvoorkomend waarschuwingsbericht dat u in R kunt tegenkomen is:

 Warning message:
NAs introduced by coercion 

Dit waarschuwingsbericht verschijnt wanneer u as.numeric() gebruikt om een vector in R naar een numerieke vector te converteren en er toevallig niet-numerieke waarden in de originele vector voorkomen.

Voor alle duidelijkheid: u hoeft niets te doen om dit waarschuwingsbericht te ‚repareren‘. R waarschuwt u eenvoudigweg dat sommige waarden in de originele vector naar NA zijn geconverteerd omdat ze niet naar numerieke waarden konden worden geconverteerd.

In deze tutorial worden echter de exacte stappen beschreven die u kunt volgen als u dit waarschuwingsbericht helemaal niet wilt zien.

Hoe het waarschuwingsbericht te reproduceren

De volgende code converteert een tekenvector naar een numerieke vector:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

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

#display digital vector
x_num

Warning message:
NAs introduced by coercion 
[1] 1 2 3 NA 4 NA

R converteert de karaktervector naar een numerieke vector, maar geeft het waarschuwingsbericht NAs weer dat onder dwang is geïntroduceerd, omdat twee waarden van de originele vector niet naar numerieke waarden konden worden omgezet.

Methode #1: Waarschuwingen verwijderen

Eén manier om met dit waarschuwingsbericht om te gaan, is door het simpelweg te onderdrukken met de functie suppressWarnings() bij het converteren van de tekenvector naar een numerieke vector:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))

#display digital vector
x_num

[1] 1 2 3 NA 4 NA

R converteert karaktervector met succes naar numerieke vector zonder een waarschuwingsbericht weer te geven.

Methode #2: Vervang niet-numerieke waarden

Eén manier om het waarschuwingsbericht in de eerste plaats te vermijden, is door de niet-numerieke waarden van de originele vector te vervangen door spaties met behulp van de functie gsub() :

 #define character vector
x <- c('1', '2', '3', '4', 'Hey')

#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)

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

#display digital vector
x_num

[1] 1 2 3 4 0

R converteert karaktervector met succes naar numerieke vector zonder een waarschuwingsbericht weer te geven.

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: de lengte van een langer object is geen veelvoud van de lengte van een korter object
Hoe op te lossen in R: contrasten kunnen alleen worden toegepast op factoren met 2 of meer niveaus

Einen Kommentar hinzufügen

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