R语言实战 - 基本数据管理(2)

5. 缺失值

> y <- c(1,2,3,NA)
> is.na(y)
[1] FALSE FALSE FALSE  TRUE
> leadership
  manager testDate country gender age item1 item2 item3 item4 item5
1       1 10/24/08      US      M  32     5     4     5     5     5
2       2 10/28/08      US      F  45     3     5     2     5     5
3       3  10/1/08      UK      F  25     3     5     5     5     2
4       4 10/12/08      UK      M  39     3     3     4    NA    NA
5       5   5/1/09      UK      F  NA     2     2     1     2     1
  stringAsFactors agecat
1           FALSE  Young
2           FALSE  Young
3           FALSE  Young
4           FALSE  Young
5           FALSE   <NA>
> leadership[,6:10]
  item1 item2 item3 item4 item5
1     5     4     5     5     5
2     3     5     2     5     5
3     3     5     5     5     2
4     3     3     4    NA    NA
5     2     2     1     2     1
> is.na(leadership[,6:10])
  item1 item2 item3 item4 item5
1 FALSE FALSE FALSE FALSE FALSE
2 FALSE FALSE FALSE FALSE FALSE
3 FALSE FALSE FALSE FALSE FALSE
4 FALSE FALSE FALSE  TRUE  TRUE
5 FALSE FALSE FALSE FALSE FALSE
>

5.1 重编码某些值为缺失值

> leadership$age[leadership$age == 99] <- NA
> leadership$age
[1] 32 45 25 39 NA
>

5.2 在分析中排除缺失值

> x <- c(1,2,NA,3)
> y <- x[1] + x[2] + x[3] + x[4]
> z <- sum(x)
> x
[1]  1  2 NA  3
> y
[1] NA
> z
[1] NA
>
>
> x <- c(1,2,NA,3)
> y <- sum(x, na.rm=TRUE)
>
> X
Error: object ‘X‘ not found
> x
[1]  1  2 NA  3
> y
[1] 6
> leadership
  manager testDate country gender age item1 item2 item3 item4 item5
1       1 10/24/08      US      M  32     5     4     5     5     5
2       2 10/28/08      US      F  45     3     5     2     5     5
3       3  10/1/08      UK      F  25     3     5     5     5     2
4       4 10/12/08      UK      M  39     3     3     4    NA    NA
5       5   5/1/09      UK      F  NA     2     2     1     2     1
  stringAsFactors agecat
1           FALSE  Young
2           FALSE  Young
3           FALSE  Young
4           FALSE  Young
5           FALSE   <NA>
> newdata <- na.omit(leadership)
> newdata
  manager testDate country gender age item1 item2 item3 item4 item5
1       1 10/24/08      US      M  32     5     4     5     5     5
2       2 10/28/08      US      F  45     3     5     2     5     5
3       3  10/1/08      UK      F  25     3     5     5     5     2
  stringAsFactors agecat
1           FALSE  Young
2           FALSE  Young
3           FALSE  Young
>

6. 日期值

> mydates <- as.Date(c("2007-06-22", "2004-02-13"))
> mydates
[1] "2007-06-22" "2004-02-13"
>
>
> strDates <- c("01/05/1965", "08/16/1975")
> strDates
[1] "01/05/1965" "08/16/1975"
> dates <- as.Date(strDates, "%m/%d/%Y")
> dates
[1] "1965-01-05" "1975-08-16"
>
> myformat <- "%m/%d/%y"
> leadership$date <- as.Date(leadership$date, myformat)
Error in as.Date.default(leadership$date, myformat) :
  do not know how to convert ‘leadership$date‘ to class “Date”
> leadership$testdate <- as.Date(leadership$date, myformat)
Error in as.Date.default(leadership$date, myformat) :
  do not know how to convert ‘leadership$date‘ to class “Date”
> leadership$testDate <- as.Date(leadership$testDate, myformat)
> leadership$testDate
[1] "2008-10-24" "2008-10-28" "2008-10-01" "2008-10-12" "2009-05-01"
> leadership
  manager   testDate country gender age item1 item2 item3 item4 item5
1       1 2008-10-24      US      M  32     5     4     5     5     5
2       2 2008-10-28      US      F  45     3     5     2     5     5
3       3 2008-10-01      UK      F  25     3     5     5     5     2
4       4 2008-10-12      UK      M  39     3     3     4    NA    NA
5       5 2009-05-01      UK      F  NA     2     2     1     2     1
  stringAsFactors agecat
1           FALSE  Young
2           FALSE  Young
3           FALSE  Young
4           FALSE  Young
5           FALSE   <NA>
>
> Sys.Date()
[1] "2017-09-07"
> date()
[1] "Thu Sep 07 22:40:04 2017"
> today <- Sys.Date()
> format(today, format="%B %d %Y")
[1] "September 07 2017"
> format(today, format="%A")
[1] "Thursday"
>
>
> startdate <- as.Date("2004-02-13")
> enddate <- as.Date("2011-01-22")
> days <- enddate - startdate
> days
Time difference of 2535 days
>
>
> today <- Sys.Date()
> dob <- as.Date("1988-06-30")
> difftime(today, dob, units="weeks")
Time difference of 1523 weeks
> difftime(today, dob, units="days")
Time difference of 10661 days
> format(dob, format="%A")
[1] "Thursday"
> format(as.Date("2017-09-07"), format="%A")
[1] "Thursday"
> format(as.Date("2017-09-06"), format="%A")
[1] "Wednesday"
>

6.1 将日期转换为字符型变量

> dates
[1] "1965-01-05" "1975-08-16"
> strDates <- as.character(dates)
> strDates
[1] "1965-01-05" "1975-08-16"
>

6.2 更进一步

help(as.Date)

help(strftime)

help(ISOdatetime)

lubridate 包

fCalendar 包

7. 类型转换

> a <- c(1, 2, 3)
> a
[1] 1 2 3
> is.numeric(a)
[1] TRUE
> is.vector(a)
[1] TRUE
>
> a <- as.character(a)
> a
[1] "1" "2" "3"
> is.numeric(a)
[1] FALSE
> is.vector(a)
[1] TRUE
> is.character(a)
[1] TRUE
>
时间: 2024-10-12 16:35:59

R语言实战 - 基本数据管理(2)的相关文章

R语言实战 - 高级数据管理(2)

2.4 字符处理函数 > x <- c("ab", "cde", "fghij") > length(x) [1] 3 > nchar(x[3]) [1] 5 > > > x <- "abcdef" > substr(x, 2, 4) [1] "bcd" > substr(x, 2, 4) <- "22222" >

R语言实战 - 基本数据管理(4)

11. 使用SQL语句操作数据框 > install.packages("sqldf") Installing package into 'C:/Users/WZhong/Documents/R/win-library/3.4' (as 'lib' is unspecified) also installing the dependencies 'rlang', 'bit', 'tibble', 'digest', 'bit64', 'blob', 'memoise', 'pkg

R语言实战 - 基本数据管理(3)

8. 数据排序 > leadership$age [1] 32 45 25 39 NA > newdata <- leadership[order(leadership$age),] > newdata manager testDate country gender age item1 item2 item3 item4 item5 3 3 2008-10-01 UK F 25 3 5 5 5 2 1 1 2008-10-24 US M 32 5 4 5 5 5 4 4 2008-

R语言实战 - 高级数据管理(4)

6. 整合与重构 6.1 转置 > mtcars mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21 6 160 110 3.9 2.6 16 0 1 4 4 Mazda RX4 Wag 21 6 160 110 3.9 2.9 17 0 1 4 4 Datsun 710 23 4 108 93 3.8 2.3 19 1 1 4 1 Hornet 4 Drive 21 6 258 110 3.1 3.2 19 1 0 3 1 Hor

R语言实战 - 高级数据管理(1)

1. 一个数据处理难题 a. 确定一个单一的成绩衡量指标 b. 前20%的学生评定为A,接下来20%评定为B,以此类推 c. 按字母顺序对学生排序 2. 数值和字符处理函数 数值函数(数学,统计,概率) 字符处理函数 2.1 数学函数 > abs(-4) [1] 4 > > sqrt(25) [1] 5 > > ceiling(3.475) [1] 4 > > floor(3.475) [1] 3 > > trunc(5.99) [1] 5 >

R入门&lt;三&gt;-R语言实战第4章基本数据管理摘要

入门书籍:R语言实战 进度:1-4章 摘要: 1)实用的包 forecast:用于做时间序列预测的,有auto.arima函数 RODBC:可以用来读取excel文件.但据说R对csv格式适应更加良好,相应的导入导出均较为方便(read.table, write等) reshape:目前用到rename函数,可以方便的对数据变量重命名 fCalendar:在日期输入处提及,据说对日期运算有奇效,但无具体示例.同理如lubridate sqldf:在数据选取处提及,可代替subset以及各种whe

《R语言实战》(中文完整版)pdf

下载地址:网盘下载 基本介绍 编辑 原作名: R in Action[2] 作者: Robert I. Kabacoff 译者: 高涛 / 肖楠 / 陈钢 出版社: 人民邮电出版社 出版年: 2013-1 页数: 388 定价: 79.00元 装帧: 平装 ISBN: 978-711-529-990-1 内容简介 编辑 数据时代已经到来,但数据分析.数据挖掘人才却十分短缺.由于"大数据"对每个领域的决定性影响,相对于经验和直觉,在商业.经济及其他领域中基于数据和分析去发现问题并作出科学

《R语言实战》学习笔记fourth

又拖了好久继续写R 语言的学习笔记了啊 这次到了基本数据管理了,众所周知数据准备是数据分析的最重要的前提 书本是从一个例子开始本章的内容的,例子是一个类似调查问卷的 然后把回答标为从1到5,再进行分析(这让我想到了自学SPSS 的时候啊) > manager <- c(1, 2, 3, 4, 5) > date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08&q

R语言实战(五)方差分析与功效分析

本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ==================================================================== 方差分析: 回归分析是通过量化的预测变量来预测量化的响应变量,而解释变量里含有名义型或有序型因子变量时,我们关注的重点通常会从预测转向组别差异的分析,这种分析方法就是方差分析(ANOVA).因变量不只一个时,称为多元方差分析(MANOVA).有协变量时,称为协方差分析(ANCOVA)或多元协方差分析