R:帮助处理多个data.frames和mapply

R:帮助处理多个data.frames和mapply,r,dataframe,regression,mapply,R,Dataframe,Regression,Mapply,我有两个数据文件,由8行2151列组成。我想对每个文件、每个列进行回归,并提取斜率、截距和r平方值。示例:对文件1第1列(全部8行)和文件2第1列(全部8行)进行回归,获取感兴趣的三个值(intercept、slope、rsquared),然后移动到这两个文件的下一组列 @最近的邮件给了我一段巨大的代码,几乎可以完成所有的事情 mapply(function(x,y) coef(lm(y~x)), input1, input2 我希望稍微调整一下,以便从线性模型中提取R2值。所以我写了一个快速

我有两个数据文件,由8行2151列组成。我想对每个文件、每个列进行回归,并提取斜率、截距和r平方值。示例:对文件1第1列(全部8行)和文件2第1列(全部8行)进行回归,获取感兴趣的三个值(intercept、slope、rsquared),然后移动到这两个文件的下一组列

@最近的邮件给了我一段巨大的代码,几乎可以完成所有的事情

mapply(function(x,y) coef(lm(y~x)), input1, input2
我希望稍微调整一下,以便从线性模型中提取R2值。所以我写了一个快速函数,看看是否可以复制成功并继续

linear_calibration <- function(x,y) {
   co_values <- coef(lm(y~x))
   return(co_values)
}

test_output = mapply(linear_calibration(input1, input2))
write.table(test_output,file="dump.csv",sep=",")

我不太清楚为什么这样写会出错。我有点误会。对我来说,我写的东西的长形式似乎与原来的一行完全相同。但事实并非如此,因此我正试图找出如何修改代码以使其正常工作。

对于您的第一个想法,要使merge按您想要的方式工作,您需要在merge中使用by参数。在每个数据帧中创建一个ID列,假设您将其称为ID

input_1$ID <- 1:8
input_2$ID <- 1:8

input\u 1$ID您是否厌倦了将列合并到一起的
rbind
?此外,发布一个可复制的代码示例也会很有帮助。有关更多详细信息,请参见[链接]()。
merge
我认为这是正确的步骤,但是你需要提供一个例子,这样我们才能帮助你。如果你打算运行2151回归分析并挑选出重要的结果,我会认真地重新考虑你在做什么。@thelatemail不这样做。不幸的是,我的任务的性质要求对每一对列进行回归。我基本上需要从每次回归中提取斜率、截距和R2。只是想弄清楚如何对付野兽才是最困难的部分!非常有帮助!我想我现在走对了方向。我所要做的就是在这个东西周围打上一些循环,希望它能发出我需要的数字。@user1819274-
mapply(函数(x,y)coef(lm(y~x)),input_1,input_2)
不需要循环之类的。@thelatemail-Holy-cow非常感谢。这是我所缺乏的一些严肃的R-fu。@user1819274-每当你遇到需要比较两个或更多列表/向量/数据帧等的第一、第二、第三个etc组件的问题时,
mappy/Map
通常会派上用场。@latemail是的,我现在正在阅读应用函数。真是太棒了。我仍然被一行代码满足了我的所有需求所震惊,而在这里,我正在用我正在制作的这个笨重的POS机四处游荡。但每个人的反应都非常感谢。
input_1$ID <- 1:8
input_2$ID <- 1:8
df <- cbind(input_1[1], input_2[1])
model <- lm(df[,1] ~ df[,2])