不想用 for
library(magrittr)
# 不肯定 da 是一個 tbl_df 有沒有問題,da 是一個 data.frame 不會有問題
z2 <- da[, 'z'] %>% {.[ 1:length(.)-1 ] != .[ 2:length(.) ]} %>% c(T, .) %>%
cumsum
tapply(da[, 'x'], z2, simplify=F)
※ 引述《Rose9305 (台產零零柒)》之銘言:
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: [軟體熟悉度]:
: 新手(沒寫過程式,R 是我的第一次)
: [問題敘述]:
: 資料轉換
: 我有個資料csv檔,裡面內容大概如下 :
: x y z
: 55 0.2 1
: 44 0.6 1
: 78 0.7 0
: 46 0.8 0
: 98 0.9 1
: 47 0.4 1
: 46 0.5 1
: 想(限)用 ''for 迴圈''轉換成只取x,z並以z重排x,如下:
: 1 55 44
: 0 78 46
: 1 98 47 46
: 把 z=1 排成一列,一遇到 z=0 又排成一列,再讀到1又排成一列這樣下去
: 不知道要如何用for迴圈來把資料轉換成上述。