R 如何在一列上应用具有多个参数的函数?
我试图将一个函数应用于具有多个列的列,其中一个参数仅作为给定的列向量进行更改 我试过:R 如何在一列上应用具有多个参数的函数?,r,R,我试图将一个函数应用于具有多个列的列,其中一个参数仅作为给定的列向量进行更改 我试过: Temp = c(2, 3, 5) s = c("aa", "bb", "cc") b = c(TRUE, FALSE, TRUE) df = data.frame(s, b, Temp) sapply(X=df$Temp, FUN=GJNeeded,SqFt=212265, RValue=2, Temp_Grow=14) get中出错(如.character(FUN),mode=“functio
Temp = c(2, 3, 5)
s = c("aa", "bb", "cc")
b = c(TRUE, FALSE, TRUE)
df = data.frame(s, b, Temp)
sapply(X=df$Temp, FUN=GJNeeded,SqFt=212265, RValue=2, Temp_Grow=14)
get中出错(如.character(FUN),mode=“function”,envir=envir):
未找到模式“function”的对象“GJNeeded”
我的自定义功能是:
GJNeeded = function(SqFt, RValue, temp_outside, Temp_Grow){
if (temp_outside<Temp_Grow) {
BTU=(temp_outside-Temp_Grow)*SqFt/RValue
GJ=BTU/1000000*1.0551
}#end if
}#end GJNeeded
GJNeeded=函数(SqFt、右值、外部温度、温度增长){
如果(temp_outOP的函数正在使用sapply
,但我们可以将其矢量化,而不是循环遍历每个值
GJNeeded <- function(SqFt, RValue, temp_outside, Temp_Grow){
i1 <- temp_outside < Temp_Grow
res <- temp_outside #else part is not clear
BTU <- (temp_outside[i1] - Temp_Grow) * SqFt/RValue
res[i1] <- BTU/1000000*1.0551
res
}
GJNeeded(SqFt = 212265, RValue = 2, temp_outside = df$Temp, Temp_Grow = 14)
#[1] -1.343765 -1.231784 -1.007824
GJNeeded它对我有效sapply(X=df$Temp,FUN=GJNeeded,SqFt=212265,RValue=2,Temp_Grow=14)[1]-1.343765-1.231784-1.007824
你能试试新的R会话吗