R语言实战笔记--第四&五章 数据管理

R语言实战笔记–第四&五章 数据管理

标签(空格分隔): R语言


  第四、第五章都是说的数据管理,合并在一起做个总结,在个人看来,数据管理是一件非常繁琐的事情,但是,每个统计的前提都是一个合适的数据样本,对的,“合适”,做到合适可不是一个简单的事情。
  本文就不分基本和高级两部分了,合在一起写吧。
  首先,我们建立一个数据框,这个数据框的数据来源可以随意,我直接使用书上面的例子吧。(PS:markdown和R的脚本,一大堆的#号~简直想死的心都有了~)

首先是数据框建立

manager <- c(1, 2, 3, 4, 5)
date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/09")
gender <- c("M", "F", "F", "M", "F")
age <- c(32, 45, 25, 39, 99)
q1 <- c(5, 3, 3, 3, 2)
q2 <- c(4, 5, 5, 3, 2)
q3 <- c(5, 2, 5, 4, 1)
q4 <- c(5, 5, 5, NA, 2)
q5 <- c(5, 5, 2, NA, 1)
leadership <- data.frame(manager, date, gender, age, q1, q2, q3, q4, q5, stringsAsFactors = FALSE)

  
  得到一个数据框如下:
  这里写图片描述
  从表中看出,有日期是“月/日/年”,我想作为一个中国人,是绝对看不惯这种日期的,别的不说,我就问一句,在不知道格式的情况下,他们是怎么区分“01/02/03”是什么鬼日期?有年龄是99的,还不退休?有q4和q5是空着的,调查表经常会碰到这种不填的行为,没办法,只能认了,删除or接受or修改后接受?看需求了。
  OK,让我们来直接使用敲代码的方式去引入本章的内容!
  
基本数据管理
  创建变量(把q1和q2,q2和q3的和和平均值求出来)
  直接使用<-方式建立新变量,+-*/等运算符号,列表后面有汇总
  使用within函数简化输入,和with不同的是,within可以修改数据框

leadership$q1q2<-leadership$q1+leadership$q2    
leadership<-within(leadership,m_q1q2<-(q1+q2)/2)

  使用transform(数据框对象,新列名1=公式1,新列名2=公式2……)

leadership<-transform(leadership,q2q3=q2+q3,M_q2q3=(q2+q3)/2)

  变量重编码(替换99岁那家伙,把年龄分组),先替换年龄

leadership$age[leadership$age==99]<-NA

  然后分组,建立一个新变量来处理分组后的分组类别

leadership<-within(leadership,{
agecat<-NA
agecat[age>55]<-"Elder"
agecat[age>=35 & age<55]<-"Middle Aged"
agecat[age<35]<-"Young"})

  再然后重命名数据框内的变量,注意,是数据框内的变量,又叫字段字,有两个方法
  1、是reshape的rename方法

install.packages("reshape")
library(reshape)
leadership<-rename(leadership,c(manager="managerID",date="testDate"))

  2、names方法(与上述方法等效,选择一个即可)

names(leadership)[1:2]<-c("managerID","testDate")

  缺失值的简单处理,书上说,后面有更复杂精妙的处理方法-_-!
  首先判断缺失值,它不是一个值,只能使用is.na()函数来判断

is.na(leadership[,6:10])

  然后标记缺失值,使用NA即可,如上述修改年龄(即变量重编码)的方式修改,这里就不重复了
  排除缺失值(在多数统计函数中,有na.rm=TRUE的方式去排除缺失值,默认是不排除的,下面两句的计算结果是不同的,支持与否看具体函数的help)

sum(leadership$q4)

sum(leadership$q4,na.rm=TRUE)
  删除含有缺失值的行(你要把它赋值到变量,不然没用,如果这都不理解,说明基础还不过关,回头复习吧,骚年~)

na.omit(leadership)

日期值处理
  我们在看leadership数据框的时候发现日期这一个变量还是char类型,不是日期类型,所以,我们要告诉R,这个变量是日期。什么,怎么看类型?来来来,一锤子把电脑磕开就可以看到了
  首先要明白日期格式,这里看下面的附表吧,在这里要用到的是%y(后两位年份),%m(两位月份),%d(两位日期)

leadership$testDate<-as.Date(leadership$testDate,"%m/%d/%y")

  日期值的默认格式是”2016-09-15”,你告诉了R,那个字段是日期,它的格式是什么,这样,之后无论你用什么格式奇葩格式表示日期,R都能认识了,比如“日日日日日日月年”什么的~
再介绍几个用得着的函数

Sys.Date() #当前日期“yyyy-mm-dd"格式
date() 
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
R语言实战笔记第九章介绍了方差分析的内容。方差分析是一种用于比较两个或多个组之间差异的统计方法。在R语言中,可以使用lm函数进行方差分析的回归拟合。lm函数的基本用法是: myfit <- lm(I(Y^(a))~x I(x^2) I(log(x)) var ... [-1],data=dataframe 其中,Y代表因变量,x代表自变量,a代表指数,var代表其他可能对模型有影响的变量。lm函数可以拟合回归模型并提供相关分析结果。 在方差分析中,还需要进行数据诊断,以确保模型的可靠性。其中几个重要的诊断包括异常观测值、离群点和高杠杆值点。异常观测值对于回归分析来说非常重要,可以通过Q-Q图和outlierTest函数来检测。离群点在Q-Q图中表示落在置信区间之外的点,需要删除后重新拟合并再次进行显著性检验。高杠杆值点是指在自变量因子空间中的离群点,可以通过帽子统计量来识别。一般来说,帽子统计量高于均值的2到3倍即可标记为高杠杆值点。 此外,方差分析还需要关注正态性。可以使用car包的qqplot函数绘制Q-Q图,并通过线的位置来判断数据是否服从正态分布。落在置信区间内为优,落在置信区间之外为异常点,需要进行处理。还可以通过绘制学生化残差的直方图和密度图来评估正态性。 综上所述,R语言实战第九章介绍了方差分析及其相关的数据诊断方法,包括异常观测值、离群点、高杠杆值点和正态性检验。这些方法可以用于分析数据的可靠性和模型的适应性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [R语言实战笔记--第八章 OLS回归分析](https://blog.csdn.net/gdyflxw/article/details/53870535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sevan_Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值