Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(dplyr)
- library(tidyr)
- dat <- data_frame('date' = Sys.time(),
- 'from' = c("person1@gmail.com", "person2@yahoo.com",
- "person3@hotmail.com", "person4@msn.com"),
- 'to' = c("person2@yahoo.com,person3@hotmail.com", "person3@hotmail.com",
- "person4@msn.com,person1@gmail.com,person2@yahoo.com", "person1@gmail.com"))
- dat %>% separate(to, into = paste0("to_", 1:3), sep = ",", extra = "merge", fill = "right")
- #Source: local data frame [4 x 5]
- #
- # date from to_1 to_2 to_3
- # (time) (chr) (chr) (chr) (chr)
- #1 2015-10-22 14:52:41 person1@gmail.com person2@yahoo.com person3@hotmail.com NA
- #2 2015-10-22 14:52:41 person2@yahoo.com person3@hotmail.com NA NA
- #3 2015-10-22 14:52:41 person3@hotmail.com person4@msn.com person1@gmail.com person2@yahoo.com
- #4 2015-10-22 14:52:41 person4@msn.com person1@gmail.com NA NA
- n_vars <- dat$to %>% str_split(",") %>% lapply(function(z) length(z)) %>% unlist() %>% max()
- library(splitstackshape)
- cSplit(dat, 'to', ',')
- library(dplyr)
- library(tidyr)
- dat %>% mutate(to = strsplit(to, ",")) %>%
- unnest(to) %>%
- group_by(from) %>%
- mutate(row = row_number()) %>%
- spread(row, to)
- Source: local data frame [4 x 5]
- date from 1 2 3
- (time) (chr) (chr) (chr) (chr)
- 1 2015-10-22 15:03:17 person1@gmail.com person2@yahoo.com person3@hotmail.com NA
- 2 2015-10-22 15:03:17 person2@yahoo.com person3@hotmail.com NA NA
- 3 2015-10-22 15:03:17 person3@hotmail.com person4@msn.com person1@gmail.com person2@yahoo.com
- 4 2015-10-22 15:03:17 person4@msn.com person1@gmail.com NA NA
Add Comment
Please, Sign In to add comment