某些自定义函数在mutate中不起作用。你能解释一下 为什么calc2和calc3不工作,以及如何解决它们以正常工作?mutate的自定义函数不起作用
library(dplyr)
m <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3, byrow = T)
calc <- function(x1,x2,x3){ #scalar
return(x1 + x2 + x3)
}
calc2 <- function(x){ #vector
return(x[1] + x[2] + x[3])
}
calc3 <- function(x){ #list
x <- unlist(x)
return(sum(x))
}
as.data.frame(m) %>%
mutate(val = calc(V1,V2,V3), #OK
val2 = calc2(c(V1,V2,V3)), #NG
val3 = calc3(list(V1,V2,V3))) #NG
下面
是输出:
V1 V2 V3 val val2 val3
1 2 3 6 12 45
4 5 6 15 12 45
7 8 9 24 12 45
“不工作”改变OP的功能是不是一个很好的问题描述。 –
您能否显示您的预期输出 – akrun
akrun,我期望val2和val3与val相同。 – oneko