una tipos simples psicologica privada por penas penal pena muerte jurisprudencia insultos informaticas ejemplos derecho denuncia delitos delito consecuencias codigo coactivas coacciones coaccion chile argentino argentina amenazas accion r parsing casting na

tipos - Cómo evitar advertencias cuando se introducen NA por coacción



penas por amenazas e insultos (4)

En general, la supresión de advertencias no es la mejor solución, ya que es posible que desee recibir una advertencia cuando se proporcione alguna información inesperada.
La siguiente solución es un contenedor para mantener solo NA durante la conversión de tipo de datos. No requiere ningún paquete.

as.num = function(x, na.strings = "NA") { stopifnot(is.character(x)) na = x %in% na.strings x[na] = 0 x = as.numeric(x) x[na] = NA_real_ x } as.num(c("1", "2", "X"), na.strings="X") #[1] 1 2 NA

Por lo general, prefiero codificar R para no recibir advertencias, pero no sé cómo evitar recibir una advertencia cuando uso as.numeric para convertir un vector de caracteres.

Por ejemplo:

x <- as.numeric(c("1", "2", "X"))

Me dará una advertencia porque introdujo NA por coacción. Quiero que las NA sean introducidas por coacción, ¿hay alguna manera de decir "sí, esto es lo que quiero hacer"? ¿O debería simplemente vivir con la advertencia?

¿O debería usar una función diferente para esta tarea?


Puede usar la biblioteca stringr .

library(tidyverse) #For piping library(stringr) #Note: it''s part of "tidyverse" c("1", "2", "X") %>% stringr::str_extract_all("//(?[0-9,.]+//)?") %>% as.numeric()


Utilice suppressWarnings() :

suppressWarnings(as.numeric(c("1", "2", "X"))) [1] 1 2 NA

Esto suprime las advertencias.


suppressWarnings() ya ha sido mencionado. Una alternativa es convertir manualmente los caracteres problemáticos a NA primero. Para su problema particular, taRifx::destring hace justamente eso. De esta forma, si recibe alguna otra advertencia inesperada de su función, no será suprimida.

> library(taRifx) > x <- as.numeric(c("1", "2", "X")) Warning message: NAs introduced by coercion > y <- destring(c("1", "2", "X")) > y [1] 1 2 NA > x [1] 1 2 NA