Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Tidyverse approach
- library(dplyr)
- library(tidyr)
- text <- "20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125"
- (mytext <- paste(rep(text, 10), collapse = ","))
- #> [1] "20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125,20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125"
- md <- data.frame(text = unlist(strsplit(mytext, ",")))
- head(md, 14)
- #> text
- #> 1 20220404
- #> 2 板橋
- #> 3 38
- #> 4 40
- #> 5 0.1
- #> 6 4288
- #> 7 120
- #> 8 20220404
- #> 9 三重
- #> 10 25
- #> 11 60
- #> 12 0.2
- #> 13 4286
- #> 14 125
- md |>
- mutate(idx = (seq(nrow(md))-1) %/% 7) |>
- group_by(idx) |>
- mutate(col_name = paste0("v", seq_along(idx))) |>
- pivot_wider(values_from = text, names_from = col_name)
- #> # A tibble: 20 × 8
- #> # Groups: idx [20]
- #> idx v1 v2 v3 v4 v5 v6 v7
- #> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
- #> 1 0 20220404 板橋 38 40 0.1 4288 120
- #> 2 1 20220404 三重 25 60 0.2 4286 125
- #> 3 2 20220404 板橋 38 40 0.1 4288 120
- #> 4 3 20220404 三重 25 60 0.2 4286 125
- #> 5 4 20220404 板橋 38 40 0.1 4288 120
- #> 6 5 20220404 三重 25 60 0.2 4286 125
- #> 7 6 20220404 板橋 38 40 0.1 4288 120
- #> 8 7 20220404 三重 25 60 0.2 4286 125
- #> 9 8 20220404 板橋 38 40 0.1 4288 120
- #> 10 9 20220404 三重 25 60 0.2 4286 125
- #> 11 10 20220404 板橋 38 40 0.1 4288 120
- #> 12 11 20220404 三重 25 60 0.2 4286 125
- #> 13 12 20220404 板橋 38 40 0.1 4288 120
- #> 14 13 20220404 三重 25 60 0.2 4286 125
- #> 15 14 20220404 板橋 38 40 0.1 4288 120
- #> 16 15 20220404 三重 25 60 0.2 4286 125
- #> 17 16 20220404 板橋 38 40 0.1 4288 120
- #> 18 17 20220404 三重 25 60 0.2 4286 125
- #> 19 18 20220404 板橋 38 40 0.1 4288 120
- #> 20 19 20220404 三重 25 60 0.2 4286 125
- ---
- ## data.table approach
- library(data.table)
- text <- "20220404,板橋,38,40,0.1,4288,120,20220404,三重,25,60,0.2,4286,125"
- mytext <- paste(rep(text, 10), collapse = ",")
- md <- data.table(text = unlist(strsplit(mytext, ",")))
- md[, idx:=(seq(.N)-1)%/%7]
- md[, col_name:=paste0("v",1:.N), by=idx]
- dcast(md, idx ~ col_name, value.var = c("text"))
- #> idx v1 v2 v3 v4 v5 v6 v7
- #> 1: 0 20220404 板橋 38 40 0.1 4288 120
- #> 2: 1 20220404 三重 25 60 0.2 4286 125
- #> 3: 2 20220404 板橋 38 40 0.1 4288 120
- #> 4: 3 20220404 三重 25 60 0.2 4286 125
- #> 5: 4 20220404 板橋 38 40 0.1 4288 120
- #> 6: 5 20220404 三重 25 60 0.2 4286 125
- #> 7: 6 20220404 板橋 38 40 0.1 4288 120
- #> 8: 7 20220404 三重 25 60 0.2 4286 125
- #> 9: 8 20220404 板橋 38 40 0.1 4288 120
- #> 10: 9 20220404 三重 25 60 0.2 4286 125
- #> 11: 10 20220404 板橋 38 40 0.1 4288 120
- #> 12: 11 20220404 三重 25 60 0.2 4286 125
- #> 13: 12 20220404 板橋 38 40 0.1 4288 120
- #> 14: 13 20220404 三重 25 60 0.2 4286 125
- #> 15: 14 20220404 板橋 38 40 0.1 4288 120
- #> 16: 15 20220404 三重 25 60 0.2 4286 125
- #> 17: 16 20220404 板橋 38 40 0.1 4288 120
- #> 18: 17 20220404 三重 25 60 0.2 4286 125
- #> 19: 18 20220404 板橋 38 40 0.1 4288 120
- #> 20: 19 20220404 三重 25 60 0.2 4286 125
- <sup>Created on 2022-06-17 by the [reprex package](https://reprex.tidyverse.org) (v2.0.1)</sup>
Add Comment
Please, Sign In to add comment