Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. usa_a <- structure(
  2. list(
  3. states = c("Alabama", "Alaska", "Arizona", "Arkansas", "California"),
  4. Murder = c(13.2, 10, 8.1, 8.8, 9),
  5. Assault = c(236L, 263L, 294L, 190L, 276L),
  6. UrbanPop = c(58L, 48L, 80L, 50L, 91L),
  7. Rape = c(21.2, 44.5, 31, 19.5, 40.6),
  8. log = c(TRUE, TRUE, TRUE, TRUE, TRUE),
  9. fracs = c(113.953488372093, 74.4186046511628,
  10. 109.302325581395, 53.4883720930233,
  11. 55.8139534883721),
  12. mix_bag = c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710",
  13. "Hornet 4 Drive", "Hornet Sportabout")
  14. ),
  15. .Names = c("states", "Murder", "Assault", "UrbanPop",
  16. "Rape", "log", "fracs", "mix_bag"),
  17. row.names = c("Alabama", "Alaska", "Arizona", "Arkansas",
  18. "California"),
  19. class = "data.frame")
  20.  
  21. usa_a <- usa_a %>% mutate_all(as.character)
  22. str(usa_a)
  23. $ states : chr "Alabama"
  24. $ Murder : chr "13.2"
  25. $ Assault : chr "236"
  26. $ UrbanPop: chr "58"
  27. $ Rape : chr "21.2"
  28. $ log : chr "TRUE"
  29. $ fracs : chr "113.953488372093"
  30. $ mix_bag : chr "Mazda RX4"
  31.  
  32. rgx.pats <- list(
  33. numeric = "^(\d){1,}(\.(\d){1,})?",
  34. logical = "^(TRUE|FALSE)$",
  35. character = "(?!^[(\d){1,}(\.(\d){1,})?|(TRUE|FALSE)]+$)^.+$"
  36. )
  37.  
  38. class_idx <- mapply(function(x){
  39. a <- lapply(names(rgx.pats), function(i){
  40. if(all(stringi::stri_detect_regex(x, rgx.pats[[i]]))){
  41. i
  42. }else{
  43. FALSE
  44. }
  45. })
  46. }, usa_a) %>% {
  47. d <- as.data.frame(.)
  48. dd <- sapply(colnames(d), function(i){
  49. which(!mapply(is.logical,d[[i]]))
  50. })
  51. as.data.frame(mapply(function(j, y){
  52. d[j,y]
  53. }, dd, names(dd)))
  54. }
  55.  
  56. class_idx
  57. states Murder Assault UrbanPop Rape log fracs mix_bag
  58. 1 character numeric numeric numeric numeric logical numeric character
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement