R语言 创建一个8行9列的数据,使用for循环将1-5设为x1-x5,分别与6-9列进行线性拟合,将拟合的r值导出到excel表里
时间: 2024-09-09 22:15:15 浏览: 69
在R语言中,你可以使用`data.frame()`创建一个数据框,然后利用`for`循环结合`lm()`函数进行线性回归并计算r值。最后,可以使用`write.xlsx()`或`write.csv()`将结果保存到Excel文件。这里是一个示例:
```R
# 创建一个8行9列的数据框
df <- data.frame(matrix(NA, nrow = 8, ncol = 9))
colnames(df) <- c("x1", "x2", "x3", "x4", "x5", "y1", "y2", "y3", "y4")
# 初始化r值矩阵
r_values <- matrix(0, nrow = 8, ncol = 4)
# 使用for循环进行线性拟合并计算r值
for (i in 1:5) {
for (j in 6:9) {
model <- lm(paste0("x", i) ~ paste0("y", j), data = df)
r_value <- round(cor(model$fitted.values, df[[paste0("y", j)]]), 2)
r_values[i, j - 5] <- r_value
# 在此添加拟合模型和r值的打印或其他操作,例如:
# print(paste0("Model between x", i, "and y", j, ": ", summary(model)))
}
}
# 将r值导出到Excel表格
library(openxlsx)
book <- createWorkbook()
addWorksheet(book, "Linear Models")
writeData(wb = book, sheet = getSheetName(book), x = as.data.frame(r_values), startRow = 1, startCol = 1)
saveWorkbook(book, "linear_models.xlsx", overwrite = TRUE)
阅读全文