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)