Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(data.table)
- library(pipeR)
- resDT <- iris %>>% data.table %>>%
- transform(Species = as.character(Species), id = 1:nrow(.)) %>>%
- melt(id = 5:6, measure = c(1:4), variable.factor = FALSE) %>>%
- `[`( , `:=`(c("partName", "measure"), tstrsplit(variable, "\\."))) %>>%
- dcast.data.table(Species + partName + id~ measure, sum, value.var = "value") %>>%
- `[`( , id := NULL)
- # Species partName Length Width
- # 1: setosa Petal 1.4 0.2
- # 2: setosa Petal 1.4 0.2
- # 3: setosa Petal 1.3 0.2
- # 4: setosa Petal 1.5 0.2
- # 5: setosa Petal 1.4 0.2
- # ---
- # 296: virginica Sepal 6.7 3.0
- # 297: virginica Sepal 6.3 2.5
- # 298: virginica Sepal 6.5 3.0
- # 299: virginica Sepal 6.2 3.4
- # 300: virginica Sepal 5.9 3.0
- library(dplyr)
- library(tidyr)
- resTbl <- iris %>>% tbl_df %>>% mutate(id = 1:nrow(.)) %>>%
- gather(variable, value, -Species, -id) %>>%
- separate(variable, c("partName", "measure")) %>>%
- spread(measure, value) %>>% select(-id)
- # Source: local data frame [300 x 4]
- #
- # Species partName Length Width
- # <fctr> <chr> <dbl> <dbl>
- # 1 setosa Petal 1.4 0.2
- # 2 setosa Sepal 5.1 3.5
- # 3 setosa Petal 1.4 0.2
- # 4 setosa Sepal 4.9 3.0
- # 5 setosa Petal 1.3 0.2
- # 6 setosa Sepal 4.7 3.2
- # 7 setosa Petal 1.5 0.2
- # 8 setosa Sepal 4.6 3.1
- # 9 setosa Petal 1.4 0.2
- # 10 setosa Sepal 5.0 3.6
- # .. ... ... ... ...
Advertisement
Add Comment
Please, Sign In to add comment