Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

error when adding lm to datetime data in ggplot2

When Trying to plot the linear regression of the data the output returns a horizontal line with a warning that the fit is rank-deficient. Can someone please explain how to display a proper linear regression?

Sample Data

ToPlot <- structure(list(Time = structure(c(1643126476.049, 1643126476.099, 
1643126476.149, 1643126476.199, 1643126476.249, 1643126476.299, 
1643126476.349, 1643126476.399, 1643126476.449, 1643126476.499, 
1643126476.549, 1643126476.599, 1643126476.649, 1643126476.699, 
1643126476.749, 1643126476.799, 1643126476.849, 1643126476.899, 
1643126476.949, 1643126476.999), class = c("POSIXct", "POSIXt"
), tzone = ""), LIN = c(112.05611159876, 112.66549348, 113.37316276144, 
113.86459976244, 114.59192652392, 115.29959580536, 115.88932020656, 
116.61664696804, 117.20637136924, 117.93369813072, 118.52342253192, 
119.13280441316, 119.8404736946, 120.54814297604, 121.15752485728, 
121.86519413872, 122.47457601996, 123.1822453014, 123.79162718264, 
124.49929646408)), row.names = 314:333, class = "data.frame")

Code:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

library("ggplot2")
library("scales")

ggplot(aes(x = Time, y = LIN), data = ToPlot) + 
  geom_point() + 
  geom_line() + 
  scale_x_datetime(labels = date_format("%H:%m:%S"))+
  geom_smooth(method='lm')

enter image description here

>Solution :

Typically the package picks the orientation (x or y) automatically. However, when it becomes uncertain, you see that message. You don’t need to specify the formula, you can just specify the orientation.

library("ggplot2")
library("scales")

ggplot(aes(x = Time, y = LIN), data = ToPlot) + 
  geom_point() + 
  geom_line() + 
  scale_x_datetime(labels = date_format("%H:%m:%S"))+
  geom_smooth(method='lm', orientation = "y")

enter image description here

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading