无法使用ggPredict可视化线性回归

时间:2020-06-11 15:36:20

标签: r

我有一个名为dataTreamill的数据集,其中包含5列文​​本信息,第6行(直到56行)包含我要分析的变量。 对于每个变量,我都希望执行线性回归,以查看我的数据在不同条件下如何变化。

我发现我可以通过以下方式绘制lm图:

lmTreadmill = lm(StrideRegularity_AP~ConditionNr, data = dataTreadmill) 

可视化这给出了一个不错的图:

ggPredict(lmTreadmill,se=TRUE,interactive=TRUE)

但是除了StrideRegularity_AP我还有54个其他变量,我想使用lapply

col <- c(6:56) # these are the only columns containing data; 
allFits = lapply(dataTreadmill[,col], function(x) (lm(x~dataTreadmill$ConditionNr+dataTreadmill$Group, data=dataTreadmill))) 

现在,我对每个变量都有一个不错的列表,其中包含有关回归的信息。 但是,当我想使用以下代码绘制这些线性回归中的任何一个时:

ggPredict(allFits$StrideRegularity_AP)

尽管将allFits $ StrideRegularity_AP与lmTreadmill(相同)进行比较时,我看不到结构或值的任何差异,但是R给出了以下错误:

Error in `[[<-.data.frame`(`*tmp*`, yname, value = c(`1` = 0.616668527648763,  : 
  replacement has 419 rows, data has 30
In addition: Warning message:
'newdata' had 30 rows but variables found have 419 rows 

为什么在使用lapply之后我无法看到线性回归?

提前谢谢! 虹膜

2 个答案:

答案 0 :(得分:0)

从lm调用中删除dataTreadmill $,然后重试。

allFits = lapply(dataTreadmill[,col], function(x) (lm(x~ConditionNr+Group, data=dataTreadmill))) 

无论如何,您都不需要指定数据(在进行快速测试时,无论是否出现与您相同的错误-都不知道为什么)

答案 1 :(得分:0)

这两种解决方案均有效!谢谢。 尽管我仍然想知道为什么,因为数据看起来与我写的建议完全相似。但是,至少没有我可以绘制数据:)

相关问题