una - recorrer un vector en matlab
Conversión de dos columnas de un marco de datos a un vector nombrado (3)
Para unlist , intente split y unlist :
unlist(split(as.character(dd$name), dd$crit))
# a b c d
# "Alpha" "Beta" "Caesar" "Doris"
Necesito convertir un data.frame dos columnas y data.frame en un vector de caracteres con nombre. Mi data.frame sería algo así como:
dd = data.frame(crit = c("a","b","c","d"),
name = c("Alpha", "Beta", "Caesar", "Doris")
)
y lo que realmente necesito sería:
whatiwant = c("a" = "Alpha",
"b" = "Beta",
"c" = "Caesar",
"d" = "Doris")
Puede hacer un vector desde dd$name y agregar nombres usando names() , pero puede hacerlo todo en un solo paso con structure() :
whatiwant <- structure(as.character(dd$name), names = as.character(dd$crit))
Use la función de names :
whatyouwant <- as.character(dd$name)
names(whatyouwant) <- dd$crit
as.character es necesario, porque data.frame y read.table convierten los caracteres en factores con configuraciones predeterminadas.
Si quieres un trazador de líneas único:
whatyouwant <- setNames(as.character(dd$name), dd$crit)