Leeg gegevensframe maken met kolomnamen door een tekenreeksvector toe te wijzen?

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"))))

LEAVE A REPLY

Please enter your comment!
Please enter your name here

9 + 9 =

Other episodes