2011-04-20 53 views
33

Me gustaría borrar la lista de advertencias() usando una línea de comando.R: cómo borrar todas las advertencias

He intentado sin éxito

> rm(last.warning, envir = baseenv()) 
Error in rm(last.warning, envir = baseenv()) : 
cannot remove variables from the base environment 

alguna idea?

Respuesta

66

Trate assign("last.warning", NULL, envir = baseenv())

+1

Gracias es perfecto – RockScience

+1

Funciona como la magia. – TMS

+4

Acepto que esta es la respuesta correcta, pero instaría a los usuarios principiantes a pensar antes de usar dicho comando. ¿Qué intentan hacer esos usuarios? Piénselo bien antes de modificar una variable subyacente (para los usuarios de C++, piense en "privado"). Si desea una nueva sesión R, inicie una nueva sesión R. Al usar esto y rm (list = ls()) no obtendrá uno. Si, por el contrario, desea eliminar las advertencias que no son correctas y no deben abordarse (¿está seguro de esto?), En su lugar, considere usar suprimirAdvertencias() en la función correspondiente. De lo contrario, podría perder advertencias importantes. – scottkosty

4

Eche un vistazo a suppressWarnings() para evitar que aparezcan las advertencias.

Aviso en el help page for warnings que dice:

" .... Se indocumentado donde se almacena last.warning ni que éste es visible, y esto está sujeto a cambio Antes. R 2.4.0 se almacena en el espacio de trabajo, pero no más ...."

+7

Bill, su segundo enlace no funcionará para cualquier persona que no tenga el servidor R-ayuda que se ejecuta en el puerto 22913 en su interfaz de bucle invertido. –

+1

Miré esta función, pero todavía quiero tener advertencias a veces. Solo quiero limpiar la pila en algún momento. – RockScience

+0

Enlaces ahora corregidos. –

4

estoy de acuerdo, wan t usar try() y juntar solo las advertencias generadas por ese try().

Mi solución por ahora es

assign("last.warning", NULL, envir = baseenv()) 
    myFit <- try(...) 
    warned <- warnings() 
assign("last.warning", NULL, envir = baseenv()) 
Cuestiones relacionadas