Reputation: 513
This is my code:
Regiao_Norte <- c('AM', 'RR', 'AP', 'PA', 'TO', 'RO', 'AC')
rows_Norte<- 'Regiao_Norte'
Regiao_Nordeste <- c('MA', 'PI', 'CE', 'RN', 'TO', 'PE', 'PB', 'SE', 'AL', 'BA')
rows_Nordeste<- 'Regiao_Nordeste'
Regiao_Centro_Oeste <- c('MT', 'MS', 'GO')
rows_Centro_Oeste<- 'Regiao_Centro_Oeste'
Regiao_Sudeste <- c('SP', 'RJ', 'ES', 'MG')
rows_Sudeste<- 'Regiao_Sudeste'
Regiao_Sul <- c('PR', 'RS', 'SC')
rows_Sul<- 'Regiao_Sul'
part_1<-cbind(rows_Norte,Regiao_Norte)
part_2<-cbind(rows_Nordeste,Regiao_Nordeste)
part_3<-cbind(rows_Centro_Oeste,Regiao_Centro_Oeste)
part_4<-cbind(rows_Sudeste,Regiao_Sudeste)
part_5<-cbind(rows_Sul,Regiao_Sul)
Using dplyr is possible to achieve this result?
rbind(part_1,part_2,part_3,part_4,part_5)
I start with 5 vectors and I would like to create a data.frame with vectors elements in a second column and as the first column the names of this vectors: Regiao_Norte, ...
The code above is not that clever. Any suggestion to use dplyr package to achieve that result?
Upvotes: 0
Views: 87
Reputation: 315
You can write a simple function to create a data frame from vectors. "rlang" library has very nice functions for working with r objects
library(rlang)
Regiao_Norte <- c('AM', 'RR', 'AP', 'PA', 'TO', 'RO', 'AC')
Regiao_Nordeste <- c('MA', 'PI', 'CE', 'RN', 'TO', 'PE', 'PB', 'SE', 'AL', 'BA')
Regiao_Centro_Oeste <- c('MT', 'MS', 'GO')
Regiao_Sudeste <- c('SP', 'RJ', 'ES', 'MG')
Regiao_Sul <- c('PR', 'RS', 'SC')
create_df = function(objects) {
df = data.frame(NULL)
for (object in objects){
df = rbind(df, data.frame(region = object, value = eval(sym(object)), stringsAsFactors = F))
}
return(df)
}
out = create_df(c("Regiao_Norte","Regiao_Nordeste","Regiao_Centro_Oeste","Regiao_Sudeste","Regiao_Sul"))
out
Upvotes: 2