我在R中尝试基于条件保留行。我想基于相同的条件在大量列中保留数据行。所以在下面的示例中,我想保留重复行中的行,其中每列的hv值为'0'。数据框如下:
ID A B C 1 001 1 1 1 2 002 0 1 0 3 002 1 0 0 4 003 0 1 1 5 003 1 0 1 6 003 0 0 1
我想这样:
ID A B C 1 001 1 1 1 2 002 0 0 0 3 003 0 0 1
任何帮助将不胜感激,谢谢!
ee7vknir1#
请检查此代码
# A tibble: 6 × 4 ID A B C <dbl> <dbl> <dbl> <dbl> 1 1 1 1 1 2 2 0 1 0 3 2 1 0 0 4 3 0 1 1 5 3 1 0 1 6 3 0 0 1
编号
data2 <- data %>% group_by(ID) %>% mutate(across(c('A','B','C'), ~ ifelse(.x==0, 0, NA), .names = 'x{col}')) %>% fill(xA, xB, xC) %>% mutate(across(c('xA','xB','xC'), ~ ifelse(is.na(.x), 1, .x))) %>% ungroup() %>% group_by(ID) %>% slice_tail(n=1)
# A tibble: 3 × 7 # Groups: ID [3] ID A B C xA xB xC <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 1 1 1 1 1 1 1 2 2 1 0 0 0 0 0 3 3 0 0 1 0 0 1
1条答案
按热度按时间ee7vknir1#
请检查此代码
编号
输出