今天我们一起来学习R软件中一些常用的数据整理函数。
数据导入出问题了怎么办
多重线性回归,一般是指有多个自变量X,只有一个因变量Y。前面我们主要是以简单线性回归为例在介绍,两者的差距主要在于自变量X的数量,在只有一个X时,就称简单线性回归本次我们数据链接:
1. 在处理数据时,可能遇到的第一个问题就是数据导入之后中文乱码。可以更换数据的编码方式,用下面的语句:
data <- read.csv('D:\data.csv', locale = locale(encoding = 'GB2312'))
2. 但有的时候,并不是编码的问题,而是根本无法导入数据,这其中的error多种多样,这里就不展示了。总之,一个可行的办法是,
当你检查了预导入数据的存储路径、文件名称准确无误后,将原数据用记事本打开,然后以txt格式保存数据,注意,此时这个数据文件就是txt格式了。打开R,手动导入文件。具体做法是在R右上方的数据显示区,点击"Import Dataset",再点击"From Text (Base)",如下图所示。之后会出现下图这样的界面,可以根据左侧的各类选项调整数据,同时右侧就会出现数据预览。没有问题之后,点击右下角的"Import"即可。3. 另外,还有一种情况,就是你的数据量很大,用read.csv函数导入会比较慢,可以尝试data.table包里的fread函数,快速导入数据。
library(data.table) data <- fread('D:\data.csv')
日期变成一串数字怎么办
多重线性回归,一般是指有多个自变量X,只有一个因变量Y。前面我们主要是以简单线性回归为例在介绍,两者的差距主要在于自变量X的数量,在只有一个X时,就称简单线性回归。
日期型变量导入R中之后,很有可能变得不再是哪年哪月哪日这样的日期格式了,而是像43838,43861这样的数字。
通常我们的数据是存储在excel中的,而excel中的日期默认是数值型的变量,具体来说,excel中的日期会自动存储为从某个默认的起始日期以来的天数。
在windows系统中,excel的起始时间一般是1900年1月1日,也就是说,"1900-01-01"这个日期会显示为数字1,"2020-01-18"会显示为43848。
所以在数据从excel导入R之后,在你看到日期变为几万的时候,就要用下面的方法来还原了。
df$date<-as.Date(df$date, origin = "1900-01-01", format='%Y-%m-%d')
如果日期变量在导入R之后,本来还好好的,而在我们对数据做了一番操作和处理后,又变成了整数的形式,还是用上面的方法来还原。这里要注意的是,R中默认的起始日期是1970年1月1日。
想通过身份证号得出年龄
多重线性回归,一般是指
在健康数据中,最重要的变量之一就是年龄,但是我们难免会遇到年龄数据缺失的情况,这时可以用身份证号来推算,弥补缺失数据。
虽然大多数人的身份证号都是18位,但偶尔也有15位的老身份证号,无论是哪种身份证号,下面的code可以帮我们提取出其中的出生年月日。
# 构建函数:birthday,功能是提取身份证号中的出生日期 birthday<-function(id){ if(is.na(id)) NA else if(nchar(id)==15) # 15位的身份证号,第7到12个数字代表出生年月日 paste('19',substr(id,7,12),sep="") else # 18位的身份证号,第7到14个数字代表出生年月日 substr(id,7,14) } # 运用birthday函数护理数据 df$birth <- sapply (df$id, birthday) # id 这个变量为原数据中的身份证号,birth这个变量是新建的,代表出生日期
还没有评论,来说两句吧...