[問題] 條件篩選資料

看板R_Language作者 (立業成家)時間10年前 (2014/11/13 11:20), 編輯推噓4(4021)
留言25則, 8人參與, 最新討論串1/2 (看更多)
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 新手(沒寫過程式,R 是我的第一次) [問題敘述]: 基本學習 [程式範例]: 我有參考此網頁的寫法,不過也出現錯誤 https://sites.google.com/site/rlearningsite/manage/manage4 在coursera學習R,之前有自己找文件看, 第一週的考試最後3題不太會,都是篩選資料後計算的 資料如下 https://www.sendspace.com/file/vtlml8 Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6 第17題是要選 Ozne>31和 Temp>90的資料,再做計算 我打程式碼如下: hw1.Q18<-hw1[Ozone>31, Temp>90] 錯誤訊息如下: Error in `[.data.frame`(hw1, Ozone > 31, Temp > 90) : object 'Temp' not found 要怎麼修改才能篩選出我要的資料呢? [關鍵字]: 篩選 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.127.235.145 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1415848834.A.746.html

11/13 12:23, , 1F
你有打 attach(hw1) ??
11/13 12:23, 1F

11/13 12:29, , 2F
hw1.Q18 <- subset(hw1, Ozone > 31 & Temp > 90)
11/13 12:29, 2F

11/13 12:30, , 3F
這樣可能比較好懂。
11/13 12:30, 3F

11/13 14:16, , 4F
謝謝andrew43, 我好像也打過類似的code orz 結果不行
11/13 14:16, 4F

11/13 14:16, , 5F
空格有關係嗎?
11/13 14:16, 5F

11/13 14:31, , 6F
選第1欄的資料是 hw1[,1] , 可以用欄位名稱 Ozone寫嗎?
11/13 14:31, 6F

11/13 14:40, , 7F
請教rockken板友,若有匯入資料,但沒打attach會不一樣嗎?
11/13 14:40, 7F

11/13 17:18, , 8F
要attch才能直接使用column名當變數,不然就要用xxx$yyy這樣
11/13 17:18, 8F

11/13 19:34, , 9F
with比較好,attach在變數多時...
11/13 19:34, 9F

11/13 21:54, , 10F
# 使用欄位名稱呼叫. 適用 data.frame & matrix
11/13 21:54, 10F

11/13 21:55, , 11F
x = data.frame(x1 = c(1:10,NA), x2 = c(NA,1:10))
11/13 21:55, 11F

11/13 21:55, , 12F
y = x[,"x1"] > 5 & x[,"x2"] > 3
11/13 21:55, 12F

11/13 21:55, , 13F
x[y & !is.na(y),]
11/13 21:55, 13F

11/13 21:56, , 14F
你的例子裡面有 NA, 所以最後篩選的時候, 要用 is.na
11/13 21:56, 14F

11/13 21:58, , 15F
可以使用欄位名稱呼叫該欄數列, 這沒問題.
11/13 21:58, 15F

11/13 22:00, , 16F
哎呀, 太久沒用 subset. 果然還是andrew版友厲害.
11/13 22:00, 16F

11/13 22:02, , 17F
但我有問題. 因為我平常習慣讓需要呼叫的欄位可自由設定.
11/13 22:02, 17F

11/13 22:02, , 18F
例如 x[,"x1"] 如此我可以在寫 function 的時候.
11/13 22:02, 18F

11/13 22:03, , 19F
利用變數替代 "x1". 但使用 subset 就不行了.
11/13 22:03, 19F

11/13 22:06, , 20F
比如 subset(x, "x1" > 5) 跟 subset(x, x1 >5)
11/13 22:06, 20F

11/13 22:11, , 21F
就不一樣..
11/13 22:11, 21F

11/13 22:31, , 22F
謝謝各位回應,我有用 is.na作答~ 希望愈來愈上手
11/13 22:31, 22F

11/14 00:27, , 24F
For Edster最後面關於subset和x1的問題的解答
11/14 00:27, 24F

11/14 00:35, , 25F
Q18<-hw1[hwl[,"Ozone"]>31 & hwl[,"Temp"]>90,]
11/14 00:35, 25F
文章代碼(AID): #1KP2E2T6 (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1KP2E2T6 (R_Language)