![](/img/trans.png)
[英]Delete all rows below specific row in R matching another value on a different data frame
[英]R - delete rows according to the value of another row
我是 R 的初學者,但感謝 Stackoverflow 社區,我正在改進,但是:我遇到了一個問題:
我有一個包含 5 個變量的數據集:
id_house id_ind indicator_tb_men
1 1 1
1 2 0
2 1 1
3 1 0
3 2 0
3 3 0
4 1 1
5 1 0
我想刪除第一個人沒有回答調查的所有家庭成員。
所以它會給:
id_house id_ind indicator_tb_men
1 1 1
1 2 0
2 1 1
4 1 1
使用dplyr
是一種方法:
library(dplyr)
df %>%
arrange(id_house, id_ind) %>%
group_by(id_house) %>%
filter(first(indicator_tb_men) != 0)
# id_house id_ind indicator_tb_men
# <int> <int> <int>
#1 1 1 1
#2 1 2 NA
#3 2 1 1
#4 4 1 1
數據
df <- structure(list(id_house = c(1L, 1L, 2L, 3L, 3L, 3L, 4L, 5L),
id_ind = c(1L, 2L, 1L, 1L, 2L, 3L, 1L, 1L), indicator_tb_men = c(1L,
NA, 1L, 0L, NA, NA, 1L, 0L)), class = "data.frame", row.names = c(NA, -8L))
在基礎中,我們可以使用嵌套邏輯
df[df$id_house %in% df$id_house[df$id_ind == 1 & df$indicator_tb_men == 1],]
id_house id_ind indicator_tb_men
1 1 1 1
2 1 2 NA
3 2 1 1
7 4 1 1
數據:使用Ronak Shah 的數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.