我在寫我的函數,並希望使用dplyr的filter()函數來選擇滿足條件的數據框的行。這是我的代碼:在編程中使用dplyr filter()
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()
每當我運行這個功能,它看起來像filter
不會選擇滿足條件的任何行。
我該如何做這項工作?
更新
出於某種原因,這個工程時,我不%的人使用'%,如;
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()
但是,每個循環的結果都是一樣的。這是爲什麼?也爲什麼我不能使用%in%
。
看一看'filter_' – HubertL
@HubertL,YH我知道這一點,也filter_是越來越淘汰 – Kay
你讀過這在哪裏? – HubertL