我有一个数据列表,我想在列表中使用两个变量进行lm
。我做了这个函数来绘制两个线性回归。这是我的代码:
FitWeibull <- function(data){
my.lm1 <- lm(data[[1]]$X ~ data[[1]]$Y, data = data)
my.lm2 <- lm(data[[2]]$X ~ data[[2]]$Y, data = data)
# return(list(my.lm1, my.lm2))
return(list(abline(my.lm1), abline(my.lm2)))
}
FitWeibull(my.data)
[[1]]
NULL
[[2]]
NULL
即使只进行一次回归,它也不起作用:
FitWeibull <- function(data){
my.lm1 <- lm(data[[1]]$X ~ data[[1]]$Y, data = data)
# my.lm2 <- lm(data[[2]]$X ~ data[[2]]$Y, data = data)
# return(list(my.lm1, my.lm2))
return(abline(my.lm1))
}
FitWeibull(my.data)
会返回任何内容
答案 0 :(得分:1)
试试这个
## Create some data set
set.seed(1)
my.data <- list(df1 = data.frame(Y = sample(10), X = sample(10)),
df2 = data.frame(Y = sample(10), X = sample(10)))
FitWeibull <- function(data){
my.lm1 <- lm(data[[1]]$X ~ data[[1]]$Y)
my.lm2 <- lm(data[[2]]$X ~ data[[2]]$Y)
par(mfrow = c(1, 2), pty = "s")
plot(data[[1]]$X , data[[1]]$Y)
abline(my.lm1)
plot(data[[2]]$X , data[[2]]$Y)
abline(my.lm2)
}
FitWeibull(my.data)
答案 1 :(得分:0)
函数abline
不会返回任何内容。它只是为图形设备添加了线条。然后你就无法退货了。如果您愿意,可以返回my.lm1
和my.lm2
个对象,稍后再点击abline
。