我有一个基于4个主要因素的函数。我希望该函数产生一个 Dataframe 的结果。
gnd <- function(a,b,c,d) {
e <- a*b
number_red <- b*e
number_leaf_red <- b*e*6
number_blue <- c*d*e
total_number1<- sum(number_red, number_blue)
type <- as.factor(c("number_red","number_leaf_red","number_blue"))
a.prob<-rep(a, 3)
b.prob<-rep(b, 3)
value <- c(number_red, number_leaf_red, number_blue)
data.frame(type,a.prob,b.prob , value)
}
但是当我想在这个函数上做一个“for”函数时,我得到了一个 Dataframe 列表。
a〈- c(0.1、0.2、0.3、0.4)
for (i in a) {
h<- gnd(a,0.1,0.3,0.4)
print(h)}
如何以函数将产生一个大 Dataframe 的方式为每个参数(a、B、c、d)应用不同的向量(如下面的示例
a <- c(0.1, 0.2,0.3,0.4)
b <- c(0.1, 0.2,0.3,0.4)
c <- c(0.1, 0.2,0.3,0.4)
d <- c(0.1, 0.2,0.3,0.4)
for (i in x) {
h<- gnd(x,2,3,4)
print(h)}
预先感谢你的帮助
2条答案
按热度按时间dkqlctbz1#
我们可以使用
Map
和rbind
将list
输出到单个 Dataframe 中或使用
for
循环1cklez4t2#
对于a、b、c、d的不同组合,您需要使用tidyverse中的pmap函数。由于您在input中有4个元素,因此df的总长度为768。我编辑了您的代码以查看不同的组合和结果