Ich schreibe meine Funktion und möchte dplyrs filter() - Funktion verwenden, um Zeilen meines Datenrahmens auszuwählen, die eine Bedingung erfüllen. Dies ist mein Code:Verwendung von dplyr filter() in Programmierung
library(tidyverse)
df <-data.frame(x = sample(1:100, 50), y = rnorm(50), z = sample(1:100,50), w = sample(1:100, 50),
p = sample(1:100,50))
new <- function(ang,brad,drau){
df%>%filter(!!drau %in% 1:50)%>%select(ang,brad) -> A
return(A)
}
brand <- c("z","w","p")
lapply(1:3, function(i) new(ang = "x", brad = "y", drau = brand[i]))%>%bind_rows()
Immer wenn ich diese Funktion zu starten, ist es wie filter
sieht wählen keine Zeilen, die die Bedingung erfüllen.
Wie kann ich das schaffen?
aktualisieren
Aus irgendeinem Grund funktioniert das, wenn ich in% verwenden `% nicht, wie in;
new <- function(ang,brad,drau){
df%>%filter(!!drau > 50)%>%select(ang,brad) -> A
return(A)
}
lapply(1:3, function(i) new(ang = "x", brad = "y", drau = brand[i]))%>%bind_rows()
Die Ergebnisse sind jedoch für jede Schleife gleich. Warum ist das so? und auch warum kann ich nicht %in%
verwenden.
einen Blick auf 'filter_' – HubertL
@HubertL haben, Yh Ich weiß, dass und auch – Kay
filter_ wird immer auslaufen, wo Sie diese gelesen haben? – HubertL