我正在尋找一種方式來獲得在組省略NA最後一個元素。標準dplyr解決方案是行不通的,這是不明確時,它會被固定issue最後一個元素省略NA - dplyr
任何人都可以圍繞建議的工作?
這裏是我所期待的
df <- DataFrame(col_1 = c('A', 'A', 'B', 'B'), col_2 = c(1, NA, 3, 3))
,所以我想組由COL_1和A組的回報1和B組的回報3
我正在尋找一種方式來獲得在組省略NA最後一個元素。標準dplyr解決方案是行不通的,這是不明確時,它會被固定issue最後一個元素省略NA - dplyr
任何人都可以圍繞建議的工作?
這裏是我所期待的
df <- DataFrame(col_1 = c('A', 'A', 'B', 'B'), col_2 = c(1, NA, 3, 3))
,所以我想組由COL_1和A組的回報1和B組的回報3
一種方式做到這一點是利用na.omit
和tail
:
df %>% group_by(col_1) %>% summarise(last=tail(na.omit(col_2),1))
col_1 last
<fctr> <dbl>
1 A 1
2 B 3
或者你可以filter
您的數據幀,然後slice
每組的最後一行:
df %>% filter(!is.na(col_2)) %>% group_by(col_1) %>% slice(n())
的例如通過「COL_1分組後」,arrange
使用邏輯矢量is.na(col_2)
和slice
第一元件
library(dplyr)
df %>%
group_by(col_1)%>%
arrange(is.na(col_2)) %>%
slice(1)
# A tibble: 2 x 2
# Groups: col_1 [2]
# col_1 col_2
# <fctr> <dbl>
#1 A 1
#2 B 3
太謝謝你了! '安排(is.na(col_2))'對我來說很新。我沒有說出我的問題。我需要在每個組中最後一個非NA元素。拉米亞已經回答了這個問題,但是非常感謝你們! – user1700890
謝謝!很有趣的是如何'最後(na.omit(COL_2))'和'COL_2 [!is.na(COL_2)]'不工作,但'tail'呢! – user1700890