por favor discúlpame si mi pregunta es muy básica.
He creado un vacío de la trama de datos por df <- data.frame() y, obviamente, el marco de datos NULL (vacío). cuando intento comprobar si el marco de datos está vacía,is.null(df), el resultado es FALSE. Hay alguna diferencia entre NULL y empty en R. En este caso, si el marco de datos no es NULL , entonces lo que es en el vacío del marco de datos y cuando se NULL. Gracias

  • df existe, por lo que no es nula. is.empty(df) es CIERTO, sin embargo.
  • De donde viene is.empty?
  • Oops, lo siento, supongo que es de spatstat!
  • Error: no se pudo encontrar la función de «es.vacío»
  • no hay tal función en R
  • Es spatstat paquete, como @cphlewis dicho anteriormente.
  • usted tiene que instalar spatstat paquete. A continuación, la función es spatstat::es.empty() no Es una función integrada.
  • Puedo saber cuando is.null() va a ser TRUE.
  • is.null(NULL) o x <- NULL; is.null(x). Que yo sepa, no hay ningún otro uso de is.null().
  • Mi argumento en el caso de la trama de datos. El almacenamiento de NULL y, a continuación, comprobar siempre conducirá a la TRUE.
  • Tan pronto como una variable es una estructura de datos no puede ser NULO porque tiene algunos de los contenidos: tiene una clase. Lo mismo es cierto para todas las otras clases. Por ejemplo, en a<-numeric(), a está vacía, pero no NULO.

InformationsquelleAutor Agaz Hussain | 2015-02-17

3 Comentarios

  1. 39

    df no es NULO porque es una trama de datos y por lo tanto tiene algunas propiedades definidas. Por ejemplo, tiene una clase. Y usted puede obtener el número de filas en el marco de datos utilizando nrow(df), incluso si el resultado debe pasar a ser cero. Por lo tanto, también el número de filas está bien definido.

    Como fas, como yo sé, no hay ninguna is.empty de comandos en la base de R. Lo que usted podría hacer es, por ejemplo, la siguiente

    is.data.frame(df) && nrow(df)==0

    Este será el que dará por vacío de un marco de datos (esto es, sin filas) y false en caso contrario.

    La razón para la comprobación de is.data.frame primera es que nrow podría causar un error, si se aplica otra cosa que un marco de datos. Gracias a &&, nrow(df) sólo se evalúa si df es un marco de datos.

    • Se puede comprobar que names(df) está vacía (character(0)), también.
    • su comprobación para las filas del df por nrow(df)==0 que es, obviamente, de 0 y no hay necesidad de escribir ` es.de datos.marco(df)`
    • Dependiendo de cómo se defina vacío sólo se puede comprobar names(df). La siguiente trama de datos df<-data.frame(a=numeric(),b=numeric()) no ha contenido, pero los nombres no obstante definido. Así que mi definición diría que es vacío, el tuyo diría que no. Todo es cuestión de lo que en realidad desea comprobar, por supuesto.
    • Usted necesita para comprobar is.data.frame si quieres evitar un comportamiento extraño en el caso de que df no es un marco de datos. Si está seguro de que siempre va a ser una trama de datos, puede omitir is.data.frame.
  2. 0

    data.frame() crea un objeto que tiene una el marco de datos clase. Debido a que el objeto existe, is.null volverá FALSO. Un NULL variable no tiene ninguna clase y sin contenido.

    • is.null volverá FALSE porque el objeto no es NULA; porque el objeto existe, is.null no return «Error: el objeto no encontrado».
  3. -3

    Respuestas anteriores son correctas, es.na y es.null no podría no detectar el vacío de valor en R. Esto es lo que yo haría para calcular cuántos valor vacío que tiene en su marco de datos ‘df’ en este caso.

    es.na(df[df ==»]) <- TRUE # acaba de reemplazar NA para el valor vacío en el df.

    suma(es.na(df)) # le dará a usted una idea de cómo muchos de los valores vacíos que tiene en su «df».

    Espero que esto sea útil.

    • No creo que en realidad lo que el OP se le preguntó. No quiero desanimar a partir de las respuestas a preguntas de ENTONCES, pero esta respuesta (mientras respuestas alguien pregunta) está demasiado lejos de la cuestión a ser útil …

Dejar respuesta

Please enter your comment!
Please enter your name here