Resultaat:
Fout in
colnames<-
(*tmp*
, value = c(“name”, “age”, “gender”)) :
‘names’-attribuut [3] moet dezelfde lengte hebben als de vector [0]
Eigenlijk is de x-lengte dynamisch, dus
y <- data.frame(name=character(), age=numeric(), gender=logical())
is geen efficiënte manier om de kolom een naam te geven. Hoe kan ik het probleem oplossen?
Antwoord 1, autoriteit 100%
Wat dacht je van:
df <- data.frame(matrix(ncol = 3, nrow = 0))
x <- c("name", "age", "gender")
colnames(df) <- x
Om al deze bewerkingen in één lijn uit te voeren:
setNames(data.frame(matrix(ncol = 3, nrow = 0)), c("name", "age", "gender"))
#[1] name age gender
#<0 rows> (or 0-length row.names)
Of
data.frame(matrix(ncol=3,nrow=0, dimnames=list(NULL, c("name", "age", "gender"))))