2017-06-13 10 views
-1

NAを省略したグループの最後の要素を取得する方法を探しています。標準のdplyr解決策は動作していません。固定する予定が明確ではありません。issueグループの最後の要素を省略します。NA - dplyr

誰かが回避策を提案できますか?ここで

は、私はので、私はCOL_1」でグループ化した後COL_1によると、グループのリターン1とグループBのリターン3

答えて

2

一つの方法は、を使用することですその後、

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グループごとの最後の行::とtail

df %>% filter(!is.na(col_2)) %>% group_by(col_1) %>% slice(n()) 
+0

ありがとうございました! '最後の(na.omit(col_2))'と 'col_2 [!is(col_2)]'はうまくいかないのに面白いですが、 'tail'はやっています! – user1700890

1

のためのグループたい

df <- DataFrame(col_1 = c('A', 'A', 'B', 'B'), col_2 = c(1, NA, 3, 3)) 

を探しています何の例です。 」、それを行うには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 
+0

はありがとうございました! 'arrange(is.na(col_2))'は私にとってとても新しいものです。私は私の質問に不満を述べました。私は各グループの最後の非NA要素が必要です。ラミアはすでに質問に答えましたが、素晴らしい例をありがとう! – user1700890

関連する問題