2017-01-04 9 views
6

dplyr Filter funktioniert nicht, wenn ich eine Liste in der Check-Wert haben. Samething funktioniert, wenn ich zu Variable zuweisen. Siehe Code untenR dplyr Filter funktioniert nicht richtig mit mild komplexen Filter

df1<-data.frame(x=1:26, y=letters, stringsAsFactors = F) 
templist<-list(alpha=df1) 
res<-df1 %>% filter(y %in% templist$alpha$y) 
nrow(res) 
[1] 0 
tempLetters <- templist$alpha$y 
res<-df1 %>% filter(y %in% tempLetters) 
nrow(res) 
[1] 26 

Ich dachte, dass dies früher funktioniert. Bitte helfen Sie. Beachten Sie, dass die Spaltennamen in beiden (y) gleich sind.

I dplyr aktualisiert haben, tidyr, pipeR auf die neuesten Versionen auf Cran jetzt gerade (4. Januar 2017)

+3

Ich denke, es kann ein Fehler oder der Name Konflikt sein, versuchen Sie mit 'Filter (df1, y% in% templist $ alpha [[2]])' oder sogar 'Filter (df1, y% in% templist $ alpha [["y"]]) ' – akrun

+0

Sind Sie sicher, dass' filter() 'die gewünschte Funktion ist? 'Select()' kann nützlicher sein, zum Beispiel 'select (df1 $ alpha, y)' oder für die Liste 'select (templist $ alpha, y)' –

+0

Andrew Ich habe nur ein einfaches Beispiel gegeben, um das Problem hervorzuheben. @akrun du bist richtig. Das Problem tritt bei Namenskonflikten auf! – guna

Antwort