我想创建一个函数,该函数接受给定参数和子集的任意多个值。例如,在以下函数中,我希望该函数对“ yr”进行任何排列,包括其中的多个:
set.seed(123)
frame <- data.frame(yr = sample(seq(2000,2004,1), 100, replace =TRUE), x = rnorm(100), y = rnorm(100))
sum.fun <- function(frame, year){
print(sum(frame[frame$yr == year,]$x))
}
sum.fun(frame, "2002")
sum.fun(frame, "2004")
sum.fun(frame, c("2002", "2004"))
但是,最后一行实际上并没有给出2002年和2004年的总和。是否有关于如何更改功能以使其取任意范围的“ yr”的想法?谢谢。
使用%in%代替==
set.seed(123)
frame <- data.frame(yr = sample(seq(2000,2004,1), 100, replace =TRUE), x = rnorm(100), y = rnorm(100))
sum.fun <- function(frame, year){
print(sum(frame[frame$yr %in% year,]$x))
}
sum.fun(frame, "2002")
sum.fun(frame, "2004")
sum.fun(frame, c("2002", "2004"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句