【发布时间】:2016-01-17 22:06:57
【问题描述】:
我正在尝试使用 sapply 来简化我的代码,以运行一个执行线性回归的函数,在我导入为 .csv 的数据集的所有列上绘制图像并将图像另存为 .pdf。基本上我有一列包含数字,我想针对第一列运行所有其他列的线性回归。到目前为止,这是我的代码:
library(readr)
library(ggplot2)
data <- read_csv("~/Desktop/tertileandvolume.csv", col_name = TRUE)
data <- na.omit(data)
run_all <- function(x){
lm(data[,1] ~ x)
summary(lm(data[,1] ~ x))
ggplot(data, aes(x=names(data)[1], y=names(data)[x])) +
geom_point(shape=1) + geom_smooth(method=lm, se=FALSE) + ggtitle("x") + labs(x=names(data)[1],y=names(data)[x])
ggsave(path="~/Desktop/")
}
sapply(data, 2, run_all)
另外,我如何使用列名来生成绘图的轴标签?然后使用相同的标签将其保存在 ggsave 中?我不太熟悉使用 sapply 或完成这项工作所需的语法。
【问题讨论】:
-
你试过
lapply(data[,-1], run_all)吗?-1是为了防止您的响应变量被用于自身。不知道y=names(data)[x]是什么意思。 -
我想使用列名作为轴标签。
标签: r ggplot2 statistics linear-regression sapply