尝试创建一个函数,该函数将生成累积热量单位所用天数的列表/向量。
Day<-c(1:10)
min1<-c(0.70,1.45,2.22,2.98,3.75,4.50,5.02,5.34,5.61,5.81)
data<-as.data.frame(cbind(Day,min1))
下面的函数正确输出data $ min1超过2的日期:
days.till<-function (x) min(data$Day[data$min1>=x])
days.till(2)
但是,如果尝试使用多个x值,则会出现错误。
days.till(2:4)
[1] 4
Warning message:
In data$min1 >= x :
longer object length is not a multiple of shorter object length
以下策略返回相同的错误:
days.till(c(2:4))
days.till<-function (x=2:4) min(data$Day[data$min1>=x])
我在其他更简单的函数中使用多个输入值没有问题,所以我担心函数中的向量索引会引起问题。任何帮助将不胜感激。
您可以用来sapply
为传递的向量中的每个元素计算所需的值:
days.till <- function(x) sapply(x, function(y) min(data$Day[data$min1>=y]))
days.till(2:4)
# [1] 3 5 6
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句