vacio una tabla observaciones filas extraer eliminar data crear contar columnas columna agregar r data.table

una - Añadir columna a data.table vacía en R



extraer una columna de una tabla en r (2)

Para agregar una nueva columna a una tabla de datos vacía existente ( versión 1.8.6 ) parece que no hay manera de hacerlo sin que se le avise.

Ejemplo:

dt<-old.table[0] dt[,new_column:=""]

Esto produce la advertencia:

In ''[.data.table''(dt, , '':=''(new_column,"")): Supplied 1 items to be assigned to 0 items of column ''new_column'' (1 unused)

¿Hay alguna manera de agregar una nueva columna sin advertencias?


Buena pregunta. Asigne un vector de caracteres vacío ( character() ) en lugar de un vector de carácter de longitud 1 ( "" ).

> DT = data.table(a=1:3,b=4:6) > DT2 = DT[0] > DT2 Empty data.table (0 rows) of 2 cols: a,b > DT2[,newcol:=character()] # no warning > DT2 Empty data.table (0 rows) of 3 cols: a,b,newcol > sapply(DT2,class) a b newcol "integer" "integer" "character"

Por cierto, ""[0] es otra forma de crear un vector de caracteres de longitud 0; 7 caracteres menos que escribir en character() pero posiblemente menos legibles, según sus preferencias.


Solo como una adición, cómo agregar una columna de caracteres vacía, cuando data.table tiene un número arbitrario de filas (incluido 0):

DT2[ ,newcol:=character(.N) ]