Re: [問題] 如何將資料分類

看板R_Language作者 (天)時間9年前 (2016/03/20 20:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《SleepyChink (SleepyChink)》之銘言: : [問題類型]: : 我想用R做一件事,但不知道如何完成。 : [軟體熟悉度]: : 請把以下不需要的部份刪除 : 新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : X Y Z Val : 1 1 1 1 1 : 2 2 1 1 0 : 3 1 2 1 0 : 4 2 2 1 0 : 5 1 1 2 1 : 6 2 1 2 1 : 7 1 2 2 1 : 8 2 2 2 0 : 要如何將資料按照Val分成兩組連續資料? : 大概成為下列樣式 : Val. 0. 1. : 2. 1. : 1. 1. : 1. 1. : 1. 1. : 2. 1. : 1. 2. : 以此類推資料長度不會一樣,不足可以以0補齊嗎? : 麻煩大家幫忙解惑一下,遇過幾次感覺應該是基本的資料處理,但依舊卡以剛開始學習請 : 多多包涵。 : 謝謝 : library(data.table) library(magrittr) library(plyr) library(dplyr) library(tidyr) dat <- fread(' X Y Z Val 1 1 1 1 2 1 1 0 1 2 1 0 2 2 1 0 1 1 2 1 2 1 2 1 1 2 2 1 2 2 2 0') %>% tbl_dt # dplyr gather(dat, cate1, cate2, -Val) # Source: local data table [24 x 3] # # Val cate1 cate2 # (int) (chr) (int) # 1 1 X 1 # 2 0 X 2 # 3 0 X 1 # 4 0 X 2 # 5 1 X 1 # 6 1 X 2 # 7 1 X 1 # 8 0 X 2 # 9 1 Y 1 # 10 0 Y 1 # .. ... ... ... # stack dat %<>% tbl_df # data.table不能用stack,轉成data.frame stack(dat, -Val) %>% cbind(rep(dat$Val, 3)) # values ind rep(dat$Val, 3) # 1 1 X 1 # 2 2 X 0 # 3 1 X 0 # 4 2 X 0 # 5 1 X 1 # 6 2 X 1 # 7 1 X 1 # 8 2 X 0 # 9 1 Y 1 # 10 1 Y 0 # 11 2 Y 0 # 12 2 Y 0 # 13 1 Y 1 # 14 1 Y 1 # 15 2 Y 1 # 16 2 Y 0 # 17 1 Z 1 # 18 1 Z 0 # 19 1 Z 0 # 20 1 Z 0 # 21 2 Z 1 # 22 2 Z 1 # 23 2 Z 1 # 24 2 Z 0 -- R資料整理套件系列文: magrittr #1LhSWhpH (R_Language) http://tinyurl.com/1LhSWhpH data.table #1LhW7Tvj (R_Language) http://tinyurl.com/1LhW7Tvj dplyr(上) #1LhpJCfB (R_Language) http://tinyurl.com/1LhpJCfB dplyr(下) #1Lhw8b-s (R_Language) tidyr #1Liqls1R (R_Language) http://tinyurl.com/1Liqls1R -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.232 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1458476621.A.E86.html
文章代碼(AID): #1MxfPDw6 (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1MxfPDw6 (R_Language)