我正在将R中的for循环转换为具有多个输入数据集的模型。在for循环中,我使用当前循环值从其他数据集中检索值。我正在尝试使用apply函数(在数据集中的列上)复制此内容,但是我正在努力建立apply函数的索引,以便从其他数据中检索适当的变量
apply函数通过函数中的变量引用列,这很好,我尝试使用两个colname(在用数字命名了我的各个列之后),但没有任何乐趣。下面是一个示例数据集和for循环,提供了我想要实现的功能(有些简化)。向量的长度和表格数据集中的列数将始终相等。
iteration<-1:3
df <- data.frame("column1" = 6:10, "column2" = 12:16, "column3" = 31:35)
variable1<-rnorm(3,mean = 25)
variable2<-rnorm(3, mean = 0.21)
outcome<-numeric()
for (i in iteration) {
intermediate<-(mean(df[,i])*variable1[i])^variable2[i]
outcome<-c(outcome,intermediate)
}
outcome
预期结果是以上结果...请尝试应用
我想象的是这样的:
apply(df, 2, function(x) (mean(x)*variable1[colnumber(x)])^variable2[colnumber(x)]
或者也许
apply(df, 2, function(x) (mean(x)*variable1[x])^variable2[x])
但是这两个显然不起作用。
答案 0 :(得分:0)
初次使用者对任何礼节问题表示歉意,但使用purrr软件包找到了我自己的问题的答案,但这也许对其他人有帮助
pmap(list(df, variable1, variable2), function(df, variable1, variable2) (mean(df)*variable1)^variable2)