R dataframe 使用兩個條件去找出特定的資料

問題描述

如果 dataframe 使用兩個條件去找出特定的資料想不到怎麼做? 那就來看我這篇 blog 就對了!

標題已經有大概講述怎麼解決了XD

問題解決與舉例:

我們先產生出一個 dataframe,定義語法如下

1
df <- data.frame(a = c(1:5), b = c(6:10), c = c(11:15))

出來的資料如下

1
2
3
4
5
6
  a  b  c
1 1 6 11
2 2 7 12
3 3 8 13
4 4 9 14
5 5 10 15

塞選出 dataframe 中 b 的值要 >= 7 and <= 9,要怎麼做呢

那麼我們使用的語法如下

1
2
df[which(df$b >= 7 & df$b <= 9), ]
#which 塞選出特定的值,中間的 and 與 or 則使用 2 進位塞選,後面的 , 則是表示輸出所有欄位

因此執行完此語法後應該如下

1
2
3
4
  a b  c
2 2 7 12
3 3 8 13
4 4 9 14

漂亮,成功解決我們的問題

參考連結

How to combine multiple conditions to subset a data-frame using “OR”? by stackoverflow

心得

R 是一種玄學,只需要抱持著盡量向量化、少用迴圈,你一定也可以寫出很 R 風格的程式!

  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: