作者celestialgod (天)
看板R_Language
标题Re: [问题] 资料重新排序
时间Tue Oct 20 11:58:40 2015
※ 引述《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://webptt.com/cn.aspx?n=bbs/R_Language/M.1445313523.A.E19.html
1F:推 CKAXI: 谢谢celestialgod提供另一种方法 10/20 21:44
2F:推 spiderway: 推 10/23 01:36