Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- usa_a <- structure(
- list(
- states = c("Alabama", "Alaska", "Arizona", "Arkansas", "California"),
- Murder = c(13.2, 10, 8.1, 8.8, 9),
- Assault = c(236L, 263L, 294L, 190L, 276L),
- UrbanPop = c(58L, 48L, 80L, 50L, 91L),
- Rape = c(21.2, 44.5, 31, 19.5, 40.6),
- log = c(TRUE, TRUE, TRUE, TRUE, TRUE),
- fracs = c(113.953488372093, 74.4186046511628,
- 109.302325581395, 53.4883720930233,
- 55.8139534883721),
- mix_bag = c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710",
- "Hornet 4 Drive", "Hornet Sportabout")
- ),
- .Names = c("states", "Murder", "Assault", "UrbanPop",
- "Rape", "log", "fracs", "mix_bag"),
- row.names = c("Alabama", "Alaska", "Arizona", "Arkansas",
- "California"),
- class = "data.frame")
- usa_a <- usa_a %>% mutate_all(as.character)
- str(usa_a)
- $ states : chr "Alabama"
- $ Murder : chr "13.2"
- $ Assault : chr "236"
- $ UrbanPop: chr "58"
- $ Rape : chr "21.2"
- $ log : chr "TRUE"
- $ fracs : chr "113.953488372093"
- $ mix_bag : chr "Mazda RX4"
- rgx.pats <- list(
- numeric = "^(\d){1,}(\.(\d){1,})?",
- logical = "^(TRUE|FALSE)$",
- character = "(?!^[(\d){1,}(\.(\d){1,})?|(TRUE|FALSE)]+$)^.+$"
- )
- class_idx <- mapply(function(x){
- a <- lapply(names(rgx.pats), function(i){
- if(all(stringi::stri_detect_regex(x, rgx.pats[[i]]))){
- i
- }else{
- FALSE
- }
- })
- }, usa_a) %>% {
- d <- as.data.frame(.)
- dd <- sapply(colnames(d), function(i){
- which(!mapply(is.logical,d[[i]]))
- })
- as.data.frame(mapply(function(j, y){
- d[j,y]
- }, dd, names(dd)))
- }
- class_idx
- states Murder Assault UrbanPop Rape log fracs mix_bag
- 1 character numeric numeric numeric numeric logical numeric character
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement