[英]R. Display only TRUE values from a boolean expression?
數據科學學生在這里。 R 的新手,在我的第一門課程中。 我花了太多時間試圖弄清楚這個練習,所以我想我會問這里的人。
我創建了一個由 4 個矩陣構建的 dataframe,標題為 bee_numbers_data_2:
buff_tail garden_bee red_tail honeybee carder_bee
10 8 18 12 8
1 3 9 13 27
37 19 1 16 6
5 6 2 9 32
12 4 4 10 23
該練習要求我們只顯示 >= 10 的蜜蜂數量。
所以我創建了一個 boolean 表達式來顯示 TRUE FALSE 語句:
bee_numbers_data_2$honeybee>=10
哪個返回:
[1] TRUE TRUE TRUE FALSE TRUE
但是,我想顯示 true 語句的 VALUES 列表,而不是 TRUE FALSE 語句的列表。
我一直在研究我的教科書和 inte.net 試圖找出這個簡單的問題,所以任何幫助將不勝感激。 非常感謝。
雖然這是一個相當簡單的問題,在 R 上的大多數介紹性文本中都有涉及,但我在 SO 上找不到重復的問題,因此似乎值得在這里回答。
讓我們分解一下。 正如您已經展示的那樣,我們可以使用 boolean 表達式生成一個包含 boolean 個值的向量:
bee_numbers_data_2 = data.frame(honeybee=c(12,13,16,9,10))
bee_numbers_data_2$honeybee >= 10
# [1] TRUE TRUE TRUE FALSE TRUE
如果我們想知道其中哪些是真的,我們可以使用基數 R function which
:
which(bee_numbers_data_2$honeybee >= 10)
# [1] 1 2 3 5
如果我們想知道對應於 position 個索引的原始值,我們可以使用這些索引對原始數據進行子集化,使用[
bee_numbers_data_2$honeybee[which(bee_numbers_data_2$honeybee >= 10)]
# [1] 12 13 16 10
或者,等效且更簡單一點,我們可以直接使用 boolean 值進行子集化:
bee_numbers_data_2$honeybee[bee_numbers_data_2$honeybee >= 10]
請注意,當您了解更多 R 時,您會發現還有一些更高級的方法來過濾和子集數據,例如包data.table
和dplyr
。 不過最好先了解base R的使用方法,如上圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.