对R中的大型数据帧应用多项式函数

对R中的大型数据帧应用多项式函数,r,function,apply,R,Function,Apply,我试图将多项式函数应用于数据集。我面临的问题是,该函数是由比我试图应用该函数的数据集更小的数据集生成的 如何将此函数应用于较大数据集的列 以下是一个可复制的示例: set.seed(4568) var1 <- runif(100) var2 <- runif(100, min =10, max = 80) df1 <- as.data.frame(cbind(var1, var2)) mod <- nls(var2 ~ b2*log((b0/var1)-1) + b1,

我试图将多项式函数应用于数据集。我面临的问题是,该函数是由比我试图应用该函数的数据集更小的数据集生成的

如何将此函数应用于较大数据集的列

以下是一个可复制的示例:

set.seed(4568)
var1 <- runif(100)
var2 <- runif(100, min =10, max = 80)
df1 <- as.data.frame(cbind(var1, var2))

mod <- nls(var2 ~ b2*log((b0/var1)-1) + b1,
             start=list(b0=1, b1=0, b2=50),
             data = df1)

df1$pred <- predict(mod)

df2 <- as.data.frame(cbind(runif(10000),NA))

但它似乎不起作用。

您会遇到什么错误?它对meI起了作用,没有任何错误,但这样做也会用预测替换我的df2$V1值,我不明白……所以你想预测
V2
,并保持
V1
predict
需要一个数据帧作为输入,你传递一个向量。试试这个:
df2$V2顺便说一句,您需要放弃
as.data.frame(cbind(var1,var2))
构造。正确的方法是
data.frame(var1,var2)
。您的方法创建一个矩阵,然后将其转换为data.frame。这是一个问题,因为矩阵只能包含一种数据类型。
predictions <- sapply(df2, function(x){predict(mod, newdata = x)})