studio mutate libreria ifelse funcion filtros con comando r dataframe dplyr concat

libreria - dplyr mutate en R-agregar columna como concat de columnas



mutate dplyr (2)

Añadiendo a la respuesta de Pablo. Si desea ordenar las filas, puede intentar order . Aquí hay un ejemplo:

res1 <- mutate(states.df, concated_column = apply(states.df[order(name, region, division), ], 1, function(x) paste0(x, collapse = "_")))

Aquí, el orden ordena el data.frame states.df por nombre y luego rompe el vínculo por región y división

Tengo un problema con el uso de la función mutate{dplyr} con el objetivo de agregar una nueva columna al marco de datos. Quiero que una nueva columna sea del tipo de carácter y conste de "concat" de palabras ordenadas de otras columnas (que también son del tipo de carácter). Por ejemplo, para el siguiente marco de datos:

> library(datasets) > states.df <- data.frame(name = as.character(state.name), + region = as.character(state.region), + division = as.character(state.division)) > > head(states.df, 3) name region division 1 Alabama South East South Central 2 Alaska West Pacific 3 Arizona West Mountain

Me gustaría obtener una nueva columna con el siguiente primer elemento:

"Alamaba_East South Central_South"

Intenté esto:

mutate(states.df, concated_column = paste0(sort(name, region, division), collapse="_"))

Pero recibí un error:

Error in sort(1:50, c(2L, 4L, 4L, 2L, 4L, 4L, 1L, 2L, 2L, 2L, 4L, 4L, : ''decreasing'' must be a length-1 logical vector. Did you intend to set ''partial''?

Gracias por cualquier ayuda por adelantado!


Necesitas usar sep = no collapse = , y ¿por qué usar sort ? Y utilicé paste y no paste0 .

library(dplyr) states.df <- data.frame(name = as.character(state.name), region = as.character(state.region), division = as.character(state.division)) res = mutate(states.df, concated_column = paste(name, region, division, sep = ''_''))

En cuanto a la ordenación, no se utiliza la sort correcta. Tal vez usted quiere:

as.data.frame(lapply(states.df, sort))

Esto ordena cada columna y crea un nuevo data.frame con esas columnas.