看板 R_Language 關於我們 聯絡資訊
※ 引述《CKAXI (我不在...)》之銘言: : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : 新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : 我有一筆資料,想依照特定的變項重新排列 : 原始: : fname lname item1 item3 id item2 pid item4 item5 : Jada W 4 5 258 3 NA NA NA : John W 3 4 123 2 989 5 2 : Tana W 4 3 321 5 NA NA NA : Brooke G 2 4 NA NA 654 3 4 : Ella W 3 5 NA NA 456 4 2 : Johnna B 3 4 NA NA 369 4 3 : 想排成: : fname lname id pid item1 item2 item3 item4 item5 : Jada W 258 NA 4 3 5 NA NA : John W 123 989 3 2 4 5 2 : Tana W 321 NA 4 5 3 NA NA : Brooke G NA 654 2 NA 4 3 4 : Ella W NA 456 3 NA 5 4 2 : Johnna B NA 369 3 NA 4 4 3 : [程式範例]: : : 請問一下是否是使用"order"這個功能?麻煩版上高手提供提示,謝謝 不知道你是不是說這樣: df = read.table(textConnection(" fname lname item1 item3 id item2 pid item4 item5 Jada W 4 5 258 3 NA NA NA John W 3 4 123 2 989 5 2 Tana W 4 3 321 5 NA NA NA Brooke G 2 4 NA NA 654 3 4 Ella W 3 5 NA NA 456 4 2 Johnna B 3 4 NA NA 369 4 3"), header=TRUE) df[order(names(df))] fname id item1 item2 item3 item4 item5 lname pid 1 Jada 258 4 3 5 NA NA W NA 2 John 123 3 2 4 5 2 W 989 3 Tana 321 4 5 3 NA NA W NA 4 Brooke NA 2 NA 4 3 4 G 654 5 Ella NA 3 NA 5 4 2 W 456 6 Johnna NA 3 NA 4 4 3 B 369 我一般還是會建議用dplyr library(dplyr) df %>% select(lname, id, pid, starts_with('item')) lname id pid item1 item3 item2 item4 item5 1 W 258 NA 4 5 3 NA NA 2 W 123 989 3 4 2 5 2 3 W 321 NA 4 3 5 NA NA 4 G NA 654 2 4 NA 3 4 5 W NA 456 3 5 NA 4 2 6 B NA 369 3 4 NA 4 3 FYI -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.190 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1445313523.A.E19.html
CKAXI: 謝謝celestialgod提供另一種方法 10/20 21:44
spiderway: 推 10/23 01:36