《Head First Data Analysis》

19/3/30-3/31

完结散花ヾ(๑╹◡╹)ノ"

(一)加载数据至R程序

  1. 由于不知名原因书上的source(“http://…/hfda.R”)没用。因而只能用read.csv函数代替。
  2. step one:employees <- read.csv(“path”, header=TRUE)将csv文件载入R
  3. step two:hist(employees$received, breaks=50)画出直方图,如下
    《深入浅出数据分析》学习笔记(完结)
  4. sd(employees$received):sd指令返回指定数据范围的标准偏差
  5. [注]hist中加入限制条件:hist(employees$received[employees$year == 2019], breaks = 50),仅选择2019年的数据

(二)回归
6. 问:什么时候使用散点图?答:散点图从多方面展现数据特点,只要数据涉及两种变量,就该考虑散点图。
7. step one:plot(employees$requested[employees$negotiated == TRUE], employees$received[employees$negotiated == TRUE]):画出散点图
《深入浅出数据分析》学习笔记(完结)
8. step two:cor(employees$requested[employees$negotiated == TRUE], employees$received[employees$negotiated == TRUE]):求出相关系数(回归线的斜率)
9. step three:使用如下命令求出回归线方程:
myLm <- lm (received[negotiated == TRUE]~ requested[negotiated == TRUE], data=employees)
myLm$coefficient
10. 但是问题来了,如上图所示当requested大于9%左右时,误差太大。这会导致机会误差过大。(机会误差:实际结果与预测结果之间的偏差),所以我们需要定理地指定误差,以给用户一个可接受预测范围。这时候就需要一个统计值,通过它体现出典型的点相对于回归线的平均偏移量
有了回归线的均方根误差Residual standard error,就能告诉用户实际结果与典型预测结果之间可能有多大差距。
首先在R中创建myLm对象,
myLm <- lm (received[negotiated == TRUE]~ requested[negotiated == TRUE], data=employees)
接着使用summary(myLm)$sigma命令查看均方根误差。(可以用summary(myLm)查出所以想要信息)

(三)关系数据库
11. 就像自然连接一样把所有需要的表导入至一个excel表中
12. 用COUNTIF()计数:e.g.:
=COUNTIF(hfda_articles.csv!B:B, hfda_issues.csv!A2)
13. 用SUMIF()求和:e.g.:
=SUMIF(hfda_sales.csv!B:B, hfda_issues.csv!A2, hfda_sales.csv!C:C)
第一个自变量读取期刊(取出issueID);第二个自变量读取你希望计算其销量的特定期刊;第三个自变量指向你希望汇总的实际销量;

(四)散点图集合
《深入浅出数据分析》学习笔记(完结)
>library(lattice)
>xyplot(webHits~commentCount|authorName, data=articleHitsComments)

《深入浅出数据分析》学习笔记(完结)
(五)整理数据
14. 例:将#号作为分隔符
《深入浅出数据分析》学习笔记(完结)
step one:选择A列数据,在“数据”选项卡下选择“分列”按钮;
step two:
《深入浅出数据分析》学习笔记(完结)
over(~ ̄▽ ̄)~

  1. 例:替换^字符(去掉它)
    《深入浅出数据分析》学习笔记(完结)
    新建一列H(保护原始数据) ,函数
    =SUBSTITUTE(B2,"^","")
    overヽ( ̄▽ ̄)ノ

  2. 例:排序,去重,去除异常字符
    《深入浅出数据分析》学习笔记(完结)
    step one:运行正则表达式去除异常字符:
    NewLastName <- sub("\\(.*\\)", “”, hfhh$LastName)
    反斜杠为退出符,告诉R括号本身不是R表达式。句号代表任何字符。星号代表任何数目前面的字符。

    step two:排序
    hfhhSorted <- hfhh[order(hfhh$PersonID),]

    step three:去重
    (1)创建一个新框架,显示唯一出现的记录:
    hfhhNameOnly <- hfhhSorted

    (2)删除CallID和Time域,这些域使名字重复出现,而客户不需要这些域:
    hfhhNameOnly$CallID <- NULL
    hfhhNameOnly$Time <- NULL

    (3) 使用unique函数删除重复的名称:
    hfhhNameOnly <- unique(hfhhNameOnly)

    (4) 写入新csv文件:
    write.csv(hfhhNameOnly, file="…csv")

相关文章:

  • 2021-07-17
  • 2021-11-09
  • 2022-12-23
  • 2022-02-10
  • 2022-12-23
  • 2021-08-03
  • 2021-10-16
  • 2022-01-14
猜你喜欢
  • 2021-06-02
  • 2021-06-30
  • 2022-01-23
  • 2021-10-06
  • 2021-12-04
  • 2021-12-20
相关资源
相似解决方案