簡體   English   中英

根據另一個 tibble 中的值子集 tibble 列

[英]Subset tibble columns based on values in another tibble

我已經盡我所能搜索了最好的,但仍在努力解決我的問題。 我正在嘗試根據來自另一個 tibble 的值對 tibble 中的列進行子集化。

更具體地說,我有一些社會經濟指標:

cname   year  ccodealp  wdi_lfpr wdi_lfprf

Turkey  2010    TUR    51.611    29.592 
Turkey  2011    TUR    52.781    30.995 
Turkey  2012    TUR    52.809    31.676 
Turkey  2013    TUR    53.874    33.125 
Turkey  2014    TUR    54.597    33.446 
Turkey  2015    TUR    55.594    34.858 

我有一個單獨的 tibble (Tibble 2),它有兩列,即 Tibble 1 中的指標和該指標的缺失百分比

tibble_2
col         value
who_dwtot   100         
who_dwrur   100         
who_dwurb   100

我想要做的是子集 tibble_1 只有在 tibble_2 中具有滿足特定條件的列。 即,僅保留缺失率低於 90% 的列(tibble_2 中的“值”列)。 我在 tidyverse 中遇到了麻煩。 這是我嘗試過的代碼:

tibble_1 %>% select(tibble_2, "value" < 90)

Error: Must subset columns with a valid subscript vector. 
x Subscript has the wrong type `tbl_df< col : character value: double >`. i 
It must be numeric or character. Run `rlang::last_error()` to see where the error occurred.

我知道這可能是一個微不足道的問題,但我不是 tidyverse 方面的專家,也不知道如何解決這個問題。

謝謝你的幫助。

我們可以根據 'value' 列filter 'tibble_2' 並為select pull tibble_1列名的 'col'

library(dplyr)
tibble_1 %>%
     select({tibble_2 %>%
                 filter(value < 90) %>%
                 pull(col)})

或者如果我們使用base R

subset(tibble_1, select = subset(tibble_2, value < 90, select = col)$col)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM