问题描述
因此,我想创建一个线性回归模型,其中火箭价格(写为火箭)相对于发射数据(基准)。我相信我可以这样做:lm(Y〜X)。但是,如何将价格从chr转换为num,以及日期的转换方式呢?
谢谢!
数据:https://www.kaggle.com/agirlcoding/all-space-missions-from-1957
解决方法
有效地,您在问3个不同但非常基本的问题,通过阅读介绍性文本而不是在Stack Overflow上发布问题会更好地学习。
- 如何将
Rocket
列的字符数据转换为数字数据?
根据您使用的R版本,spaceData$Rocket
列将是字符向量或因子向量。要涵盖这两种情况,您可以执行以下操作:
spaceData$Rocket <- as.numeric(as.character(spaceData$Rocket))
这将警告您某些NA
值已生成。没关系-列中有一些空白单元格,因此您希望它们为NA
。
- 如何将
spaceData$Datum
列从文本转换为实际日期时间?
在这种情况下,您可以使用strptime
,并指定日期字符串的格式。我们还将把它包装在as.POSIXct
中,以确保以更容易绘制的方式格式化数据:
spaceData$Datum <- as.POSIXct(strptime(spaceData$Datum,"%a %b %d,%Y %H:%M"))
- 如何使用这两个变量进行线性回归?
在尝试进行线性回归之前,最好确保进行线性回归是明智的。为了使线性回归有意义,您应该知道两个变量之间存在近似线性关系,并且残差近似呈正态分布。检查这些假设的一种简单方法是绘制两个变量:
plot(spaceData$Datum,spaceData$Rocket)
您不必是统计学家,就可以看出通过这些观点的任何直线都很难成为对这种关系的描述。如果我们尝试一下,我们可以看到:
abline(lm(Rocket ~ Datum,data = spaceData),col = "red")
因此,通过对这些数据进行线性回归,我们可以预测到2036年5月13日火箭的价格将跌至零。显然这是胡说八道。