[問題] 多個子集合選取

作者: hanglong (小煥)   2016-01-26 12:00:25
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
處理比較大量的資料,
想要選取某個類別當中的幾個Levels作為子集合,
但是只會一個一個將不要的刪除,
不知道有沒有一個可以簡單化的程式?
[程式範例]:
以下為簡單的例子:
假設我有個Data Sheet(檔案名稱為Score):
班級 座號 分數
A 1 50
A 2 60
A 3 70
B 1 80
B 2 90
B 3 100
C 1 90
C 2 80
C 3 70
D 1 60
D 2 50
D 3 60
若我想要擷取A班的成績:
Score[Score$班級 == "A",]
若我想要擷取C班的成績:
Score[Score$班級 == "C",]
就可以很容易地擷取出來。
但若我想要同時擷取A & C班的成績,
希望出來的結果:
班級 座號 分數
A 1 50
A 2 60
A 3 70
C 1 90
C 2 80
C 3 70
Score[Score$班級 == "A" & Score$班級 == "C",]
上面的程式就不會跑出我想要的結果
我就只能將不必要的一一刪除:
Score[Score$班級 != "B",]
Score[Score$班級 != "D",]
同時跑上面兩行程式,才會出現我要的結果,
但是當Levels很多的時候,就會變得很麻煩,
不知道有沒有比較簡單的程式,可以達成這樣的結果?
[環境敘述]:
R 3.1.2
[關鍵字]:
子集合選取
作者: celestialgod (天)   2016-01-26 14:30:00
Score[Score$班級 == "A" | Score$班級 == "C",]
作者: hanglong (小煥)   2016-01-26 14:38:00
謝謝 我試試看
作者: andrew43 (討厭有好心推文後刪文者)   2016-01-28 02:46:00
subset()也有一樣功能,也容易閱讀。
作者: clickhere (It's time to go home.)   2016-01-28 08:54:00
Score[Score$班級 %in% c("A", "C"),]

Links booklink

Contact Us: admin [ a t ] ucptt.com