当前位置: 首页 > news >正文

成都营销型网站wordpress评论显示游客

成都营销型网站,wordpress评论显示游客,wordpress数据库设置密码,盐城网站建设代理商文章目录 1. 环境安装1.1. rstudio保存工作空间 2. 创建数据集2.1. 数据集概念2.2. 向量、矩阵2.3. 数据框2.3.1. 创建数据框2.3.2. 创建新变量2.3.3. 变量的重编码2.3.4. 列重命名2.3.5. 缺失值2.3.6. 日期值2.3.7. 数据框排序2.3.8. 数据框合并(合并沪深300和中证500收盘… 文章目录 1. 环境安装1.1. rstudio保存工作空间 2. 创建数据集2.1. 数据集概念2.2. 向量、矩阵2.3. 数据框2.3.1. 创建数据框2.3.2. 创建新变量2.3.3. 变量的重编码2.3.4. 列重命名2.3.5. 缺失值2.3.6. 日期值2.3.7. 数据框排序2.3.8. 数据框合并(合并沪深300和中证500收盘价日历)2.3.9. 数据框子集2.3.10. 随机抽样2.3.11. sql操作数据框2.3.12. 转置t2.3.13. 聚合aggregate2.3.14. reshape22.3.15. 其他常用2.3.15.1. 区间均分2.3.15.2. 统计区间个数table(cut()) 3. 数据标准化3.1. 案例-学生成绩排名3.2. 数学函数3.3. 统计函数3.4. 概率函数3.5. 字符处理函数3.6. 其他实用函数 4. 列表5. 数据输入输出5.0.1. 读取、写入csv文件 6. 画图6.1. 收盘价日历图6.2. 2图2y轴多元素6.2.1. mtcars点图 6.3. 条形图6.4. 分组条形图6.5. 饼图6.6. 直方图6.7. 核密度图6.8. 点图 7. 统计分析7.1. summary7.2. cor相关系数7.3. 回归 1. 环境安装 R是支持win、linux合macos的 完整参考https://zhuanlan.zhihu.com/p/596324321?utm_id0 主要是安装1、R环境2、rstudio开发环境后面主要是用rstudio也可以用vscode 1.1. rstudio保存工作空间 有2种东西关注 1.是输入的命令历史 2.是一系列操作后在工作空间里各种变量的数据值快照 答案 1.在关闭rstudio的时候会提示保存输入的历史会保存在工作空间的 .RHistory文件中此文件在 getwd()输出的目录下。 2.通过save.image(myImage.RData)将变量数值快照保存到 myImage.RData 文件中此文件在 getwd()输出的目录下。 2. 创建数据集 2.1. 数据集概念 变量类型PatientID是行/实例标识符AdmDate是日期型变量Age是连续型变量Diabetes是名义型变量(枚举)Status是有序型变量(有顺序的枚举) 不同变量类型后面画图用到的plot函数会有不同的呈现效果。 R的数据结构R中有许多用于存储数据的结构包括标量、向量(一组相同的标量)、矩阵、数组、数据框和列表。 R将实例标识符称为rownames(行名)将类别型(包括名义型和有序型)变量称为因子(factors)。 2.2. 向量、矩阵 向量a - c(k, j, h, a, c, m)a[c(1, 3, 5)] [1] k h ca[2:6] [1] j h a c m矩阵: 4行5列默认是按照列来填充的y - matrix(1:20, nrow 4, ncol 5)y[,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20指定列名、行名的矩阵mdata - c(1,3,5,10)cnames - c(c1, c2)rnames - c(r1, r2)mymatrix - matrix(mdata, nrow 2, ncol 2, dimnames list(rnames, cnames), byrow TRUE)mymatrixc1 c2 r1 1 3 r2 5 10访问矩阵的单个元素、行、列接上例mymatrixc1 c2 r1 1 3 r2 5 10mymatrix[2,2] [1] 10mymatrix[1,] c1 c2 1 3 mymatrix[,2] r1 r2 3 10 2.3. 数据框 由于不同的列可以包含不同模式(数值型、字符型等)的数据数据框的概念较矩阵来说更为一般。 每一列数据的模式必须唯一不过你却可以将多个模式的不同列放到一起组成数据框。 # 创建数据框patientID - c(1, 2, 3, 4)age - c(25, 34, 28, 52)diabetes - c(Type1, Type2, Type1, Type1)status - c(Poor, Improved, Excellent, Poor)patientdata - data.frame(patientID, age, diabetes, status) # 构建data.framepatientdatapatientID age diabetes status 1 1 25 Type1 Poor 2 2 34 Type2 Improved 3 3 28 Type1 Excellent 4 4 52 Type1 Poor patientdata[c(1,2)] # 第1列和第2列patientID age 1 1 25 2 2 34 3 3 28 4 4 52 patientdata[1,2] # 第1行第2列的数据 [1] 25 patientdata[1,] # 第1行数据patientID age diabetes status 1 1 25 Type1 Poor patientdata[,2] # 第2列数据 [1] 25 34 28 52patientdata[c(patientId, age)] Error in [.data.frame(patientdata, c(patientId, age)) : undefined columns selected patientdata[c(patientID, age)] # 取出patientId、age这2列数据patientID age 1 1 25 2 2 34 3 3 28 4 4 52 patientdata$age # 使用$取出列的数据 [1] 25 34 28 52# 如果你想生成糖尿病类型变量diabetes和病情变量status的列联表使用以下代码即可:patientdata[age]age 1 25 2 34 3 28 4 52table(patientdata$diabetes, patientdata$status)Excellent Improved PoorType1 1 0 2Type2 0 1 0# 使用 row.names 来指定data.frame数据框的行名patientdata - data.frame(patientID, age, diabetes,status, row.namespatientID)patientdatapatientID age diabetes status 1 1 25 Type1 Poor 2 2 34 Type2 Improved 3 3 28 Type1 Excellent 4 4 52 Type1 Poor# 因子 指定顺序status - factor(status, orderTRUE,levelsc(Poor, Improved, Excellent))status [1] Poor Improved Excellent Poor# 因子 在数据框中的使用 str(patientdata) summary(patientdata)patientID - c(1, 2, 3, 4)age - c(25, 34, 28, 52)diabetes - c(Type1, Type2, Type1, Type1)status - c(Poor, Improved, Excellent, Poor)diabetes - factor(diabetes)status - factor(status, orderTRUE)patientdata - data.frame(patientID, age, diabetes, status)patientdatapatientID age diabetes status 1 1 25 Type1 Poor 2 2 34 Type2 Improved 3 3 28 Type1 Excellent 4 4 52 Type1 Poorstr(patientdata) data.frame: 4 obs. of 4 variables:$ patientID: num 1 2 3 4$ age : num 25 34 28 52$ diabetes : Factor w/ 2 levels Type1,Type2: 1 2 1 1$ status : Ord.factor w/ 3 levels ExcellentImproved..: 3 2 1 3summary(patientdata)patientID age diabetes status Min. :1.00 Min. :25.00 Type1:3 Excellent:1 1st Qu.:1.75 1st Qu.:27.25 Type2:1 Improved :1 Median :2.50 Median :31.00 Poor :2 Mean :2.50 Mean :34.75 3rd Qu.:3.25 3rd Qu.:38.50 Max. :4.00 Max. :52.00 2.3.1. 创建数据框 manager - c(1, 2, 3, 4, 5)date - c(10/24/08, 10/28/08, 10/1/08, 10/12/08, 5/1/09)country - c(US, US, UK, UK, UK)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, country, gender, age, q1, q2, q3, q4, q5, stringsAsFactorsFALSE)leadershipmanager date country gender age q1 q2 q3 q4 q5 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 99 2 2 1 2 12.3.2. 创建新变量 mydata-data.frame(x1 c(2, 2, 6, 4), x2 c(3, 4, 2, 8))mydatax1 x2 1 2 3 2 2 4 3 6 2 4 4 8 # 方式1mydata$sumx - mydata$x1 mydata$x2mydata$meanx - (mydata$x1 mydata$x2)/2mydatax1 x2 sumx meanx 1 2 3 5 2.5 2 2 4 6 3.0 3 6 2 8 4.0 4 4 8 12 6.0 # 方式2mydata - transform(mydata, sumx x1x2, meanx (x1 x2)/2)mydatax1 x2 sumx meanx 1 2 3 5 2.5 2 2 4 6 3.0 3 6 2 8 4.0 4 4 8 12 6.02.3.3. 变量的重编码 重编码涉及根据同一个变量和/或其他变量的现有值创建新值的过程。举例来说你可能想:  将一个连续型变量修改为一组类别值; 将误编码的值替换为正确值; 基于一组分数线创建一个表示及格/不及格的变量。 逻辑运算符与、或|、非!、测试x是否为TRUE isTRUE(x) leadershipmanager date country gender age q1 q2 q3 q4 q5 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 99 2 2 1 2 1leadership$age[leadership$age 99] - NA # 判断年龄99的重新填充值为NAleadershipmanager date country gender age q1 q2 q3 q4 q5 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# 根据条件创建新的一列leadership$agecat[leadership$age 75] - Elderleadership$agecat[leadership$age 55 leadership$age 75] - Middle Agedleadership$agecat[leadership$age 55] - Youngleadershipmanager date country gender age q1 q2 q3 q4 q5 agecat 1 1 10/24/08 US M 32 5 4 5 5 5 Young 2 2 10/28/08 US F 45 3 5 2 5 5 Young 3 3 10/1/08 UK F 25 3 5 5 5 2 Young 4 4 10/12/08 UK M 39 3 3 4 NA NA Young 5 5 5/1/09 UK F NA 2 2 1 2 1 NA2.3.4. 列重命名 names(leadership)[2] - testDatenames(leadership)[6:10] - c(item1, item2, item3, item4, item5)2.3.5. 缺失值 y - c(1, 2, 3, NA)is.na(y) [1] FALSE FALSE FALSE TRUE# 忽略缺失值 sum(x, na.rmTRUE) 或者 na.omit(leadership)y - c(1, 2, 3, NA)is.na(y) [1] FALSE FALSE FALSE TRUEis.na(y)[4] [1] TRUEx - c(1, 2, NA, 3)y - x[1] x[2] x[3] x[4]y [1] NAz - sum(x)z [1] NAy - sum(x, na.rmTRUE)y [1] 6 leadershipmanager date country gender age q1 q2 q3 q4 q5 agecat 1 1 10/24/08 US M 32 5 4 5 5 5 Young 2 2 10/28/08 US F 45 3 5 2 5 5 Young 3 3 10/1/08 UK F 25 3 5 5 5 2 Young 4 4 10/12/08 UK M 39 3 3 4 NA NA Young 5 5 5/1/09 UK F NA 2 2 1 2 1 NAna.omit(leadership)manager date country gender age q1 q2 q3 q4 q5 agecat 1 1 10/24/08 US M 32 5 4 5 5 5 Young 2 2 10/28/08 US F 45 3 5 2 5 5 Young 3 3 10/1/08 UK F 25 3 5 5 5 2 Young2.3.6. 日期值 日期值通常以字符串的形式输入到R中然后转化为以数值形式存储的日期变量。函数 as.Date()用于执行这种转化。其语法为as.Date(x, “input_format”)其中x是字符型数据input_format则给出了用于读入日期的适当格式(见表4-4)。 日期值的默认输入格式为yyyy-mm-dd。 日期值的默认输入格式为yyyy-mm-dd。 strDates - c(01/05/1965, 08/16/1975)dates - as.Date(strDates, %m/%d/%Y)dates [1] 1965-01-05 1975-08-16leadershipmanager date country gender age q1 q2 q3 q4 q5 agecat 1 1 10/24/08 US M 32 5 4 5 5 5 Young 2 2 10/28/08 US F 45 3 5 2 5 5 Young 3 3 10/1/08 UK F 25 3 5 5 5 2 Young 4 4 10/12/08 UK M 39 3 3 4 NA NA Young 5 5 5/1/09 UK F NA 2 2 1 2 1 NA # 日期格式转换leadership$date - as.Date(leadership$date, %m/%d/%y)leadershipmanager date country gender age q1 q2 q3 q4 q5 agecat 1 1 2008-10-24 US M 32 5 4 5 5 5 Young 2 2 2008-10-28 US F 45 3 5 2 5 5 Young 3 3 2008-10-01 UK F 25 3 5 5 5 2 Young 4 4 2008-10-12 UK M 39 3 3 4 NA NA Young 5 5 2009-05-01 UK F NA 2 2 1 2 1 NA有两个函数对于处理时间戳数据特别实用。Sys.Date()可以返回当天的日期而date()则返回当前的日期和时间。 # Sys.Date() 与 date() 函数Sys.Date() [1] 2023-11-28str(Sys.Date) function () str(Sys.Date())Date[1:1], format: 2023-11-28date() [1] Tue Nov 28 17:29:09 2023format(date(), %Y-%m-%d) Error in format.default(date(), %Y-%m-%d) : invalid trim argumentformat(Sys.Date(), %Y-%m-%d) [1] 2023-11-28format(Sys.Date(), %Y/%m/%d) [1] 2023/11/28str(format(Sys.Date(), %Y/%m/%d))chr 2023/11/28# 日期差startdate - as.Date(2004-02-13)enddate - as.Date(2011-01-22)days - enddate - startdatedays Time difference of 2535 days# 间隔多少周today - Sys.Date()kelvin - as.Date(1990-05-10)difftime(today, kelvin, unitsweeks) Time difference of 1750.714 weeks# 将日期转为字符串格式dates [1] 1965-01-05 1975-08-16str(dates)Date[1:2], format: 1965-01-05 1975-08-16as.character(dates) [1] 1965-01-05 1975-08-16str(as.character(dates))chr [1:2] 1965-01-05 1975-08-162.3.7. 数据框排序 leadership[order(leadership$age)]country manager gender date age 1 US 1 M 2008-10-24 32 2 US 2 F 2008-10-28 45 3 UK 3 F 2008-10-01 25 4 UK 4 M 2008-10-12 39 5 UK 5 F 2009-05-01 NA leadership[order(leadership$age),] # 这里的逗号少了的话差异还是很大的貌似是截取了manager date country gender age q1 q2 q3 q4 q5 agecat 3 3 2008-10-01 UK F 25 3 5 5 5 2 Young 1 1 2008-10-24 US M 32 5 4 5 5 5 Young 4 4 2008-10-12 UK M 39 3 3 4 NA NA Young 2 2 2008-10-28 US F 45 3 5 2 5 5 Young 5 5 2009-05-01 UK F NA 2 2 1 2 1 NA newdata -leadership[order(gender, -age),] # 2列排序正序和倒序newdatamanager date country gender age q1 q2 q3 q4 q5 agecat 5 5 2009-05-01 UK F NA 2 2 1 2 1 NA 2 2 2008-10-28 US F 45 3 5 2 5 5 Young 3 3 2008-10-01 UK F 25 3 5 5 5 2 Young 4 4 2008-10-12 UK M 39 3 3 4 NA NA Young 1 1 2008-10-24 US M 32 5 4 5 5 5 Young2.3.8. 数据框合并(合并沪深300和中证500收盘价日历) merge()函数。在多数情况下两个数据框是通过一个或多个共有变量进行联结的(即一种内联结inner join)。 # 读取沪深300收盘价sh300 - read.csv(SH510300-收盘价.csv)head(sh300)date close 1 2012/5/28 2.2020 2 2012/5/29 2.2359 3 2012/5/30 2.2291 4 2012/5/31 2.2240 5 2012/6/1 2.2240 6 2012/6/4 2.1631# 读取中证500收盘价sh500 - read.csv(SH510500-收盘价.csv)head(sh500)date close 1 2013/3/15 3.0215 2 2013/3/18 2.9717 3 2013/3/19 2.9904 4 2013/3/20 3.0683 5 2013/3/21 3.0994 6 2013/3/22 3.1119# 将2个dataframe合并按照date列合并没有的数据会自动补充为NA merge默认是inner join需要加 all TRUE 参数merged_df - merge(sh300, sh500, by date, all TRUE)head(merged_df)date close.x close.y 1 2012/10/10 1.9923 NA 2 2012/10/11 1.9788 NA 3 2012/10/12 1.9771 NA 4 2012/10/15 1.9703 NA 5 2012/10/16 1.9712 NA 6 2012/10/17 1.9788 NA# 查看合并后的总行数nrow(merged_df) [1] 2797 # 原沪深300行数nrow(sh300) [1] 2797 # 原中证500行数nrow(sh500) [1] 2600# 如果直接按照date列进行排序是错的可见是从 2012/10/10 开始。应该是沪深300的2012-05-28 需要对date列进行转日期格式。merged_df - merged_df[order(merged_df$date),]head(merged_df)date close.x close.y 1 2012/10/10 1.9923 NA 2 2012/10/11 1.9788 NA 3 2012/10/12 1.9771 NA 4 2012/10/15 1.9703 NA 5 2012/10/16 1.9712 NA 6 2012/10/17 1.9788 NA # 日期格式转换merged_df$date - as.Date(merged_df$date, %Y/%m/%d)head(merged_df)date close.x close.y 1 2012-10-10 1.9923 NA 2 2012-10-11 1.9788 NA 3 2012-10-12 1.9771 NA 4 2012-10-15 1.9703 NA 5 2012-10-16 1.9712 NA 6 2012-10-17 1.9788 NA # 对数据框排序merged_df - merged_df[order(merged_df$date),]head(merged_df)date close.x close.y 62 2012-05-28 2.2020 NA 63 2012-05-29 2.2359 NA 64 2012-05-30 2.2291 NA 65 2012-05-31 2.2240 NA 66 2012-06-01 2.2240 NA 81 2012-06-04 2.1631 NA2.3.9. 数据框子集 d1 - read.csv(SH510300.csv)head(d1)date uuid date.1 volume open high low close chg 1 2012-05-28 SH510300|2012-05-28 2012-05-28 1277518769 2.1572 2.2046 2.1513 2.2020 0.0255 2 2012-05-29 SH510300|2012-05-29 2012-05-29 714949008 2.2004 2.2503 2.2004 2.2359 0.0339 3 2012-05-30 SH510300|2012-05-30 2012-05-30 265887198 2.2342 2.2384 2.2266 2.2291 -0.0068 4 2012-05-31 SH510300|2012-05-31 2012-05-31 178155984 2.2164 2.2367 2.2097 2.2240 -0.0051 5 2012-06-01 SH510300|2012-06-01 2012-06-01 179350035 2.2232 2.2494 2.2156 2.2240 0.0000 6 2012-06-04 SH510300|2012-06-04 2012-06-04 546074272 2.1995 2.2020 2.1606 2.1631 -0.0609percent turnoverrate amount 1 1.17 10.45 NA 2 1.54 5.85 NA 3 -0.30 2.17 NA 4 -0.23 1.46 NA 5 0.00 1.47 NA 6 -2.74 4.47 NA # 取135行以及 date, close 列d2 - d1[c(1,3,5), c(date, close)]d2date close 1 2012-05-28 2.2020 3 2012-05-30 2.2291 5 2012-06-01 2.2240# 其他一些用法 newdata - leadership[leadership$genderM leadership$age 30,]leadership$date - as.Date(leadership$date, %m/%d/%y) startdate - as.Date(2009-01-01) enddate - as.Date(2009-10-31) newdata - leadership[which(leadership$date startdate leadership$date enddate),]newdata - subset(leadership, age 35 | age 24, selectc(q1, q2, q3, q4)) # 选择所有age值大于等于35或age值 小于24的行保留了变量q1到q4 newdata - subset(leadership, gender M | age 25, selectgender:q4) # 选择所有25岁以上的男性并保留了变量gender 到q4(gender、q4和其间所有列)2.3.10. 随机抽样 # 读取数据d1 - read.csv(SH510300.csv)head(d1)date uuid date.1 volume open high low close chg 1 2012-05-28 SH510300|2012-05-28 2012-05-28 1277518769 2.1572 2.2046 2.1513 2.2020 0.0255 2 2012-05-29 SH510300|2012-05-29 2012-05-29 714949008 2.2004 2.2503 2.2004 2.2359 0.0339 3 2012-05-30 SH510300|2012-05-30 2012-05-30 265887198 2.2342 2.2384 2.2266 2.2291 -0.0068 4 2012-05-31 SH510300|2012-05-31 2012-05-31 178155984 2.2164 2.2367 2.2097 .2240 -0.0051 5 2012-06-01 SH510300|2012-06-01 2012-06-01 179350035 2.2232 2.2494 2.2156 2.2240 0.0000 6 2012-06-04 SH510300|2012-06-04 2012-06-04 546074272 2.1995 2.2020 2.1606 2.1631 -0.0609percent turnoverrate amount 1 1.17 10.45 NA 2 1.54 5.85 NA 3 -0.30 2.17 NA 4 -0.23 1.46 NA 5 0.00 1.47 NA 6 -2.74 4.47 NA# 查看总行数nrow(d1) [1] 2797# 从 1:nrow(d1) 这个向量里面读取3个不放回抽样s1 - sample(1:nrow(d1), 3, replace FALSE)s1 [1] 761 195 116 # 直接从数据集抽样语法mysample - d1[sample(1:nrow(d1), 3, replaceFALSE),]mysampledate uuid date.1 volume open high low close chg 808 2015-09-18 SH510300|2015-09-18 2015-09-18 258148381 2.9232 2.9347 2.8877 2.9046 -0.0008 1880 2020-02-18 SH510300|2020-02-18 2020-02-18 709950982 3.8817 3.8865 3.8386 3.8645 -0.0239 2772 2023-10-20 SH510300|2023-10-20 2023-10-20 1740446164 3.5830 3.6000 3.5650 3.5820 -0.0180percent turnoverrate amount 808 -0.03 4.42 NA 1880 -0.61 0.00 2867046795 2772 -0.50 0.00 6233727376# 抽样是在 1:nrow(d1) 不放回不影响原来的d1数据集nrow(d1) [1] 27972.3.11. sql操作数据框 install.packages(sqldf)install.packages(RSQLite)library(sqldf) Loading required package: RSQLite # 从数据框 sh300 提取 close 3 的行并按照close倒序排列。参数row.namesTRUE将原始数据框中的行名延续到了新数据框中。newdf - sqldf(select * from sh300 where close 3 order by close desc, row.names TRUE)head(newdf)date close 2123 2021/2/10 5.6294 2125 2021/2/19 5.6188 2124 2021/2/18 5.5877 2122 2021/2/9 5.5179 2111 2021/1/25 5.4588 2102 2021/1/12 5.4231nrow(newdf) [1] 19252.3.12. 转置t 行列名对换 cars - mtcars[1:5,1:4]carsmpg cyl disp hp Mazda RX4 21 6 160 110 Mazda RX4 Wag 21 6 160 110 Datsun 710 23 4 108 93 Hornet 4 Drive 21 6 258 110 Hornet Sportabout 19 8 360 175t(cars)Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout mpg 21 21 23 21 19 cyl 6 6 4 6 8 disp 160 160 108 258 360 hp 110 110 93 110 1752.3.13. 聚合aggregate 类似按照条件分组聚合。 mtcarsmpg 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.9 2.3 19 1 1 4 1 Hornet 4 Drive 21 6 258 110 3.1 3.2 19 1 0 3 1 Hornet Sportabout 19 8 360 175 3.1 3.4 17 0 0 3 2 Valiant 18 6 225 105 2.8 3.5 20 1 0 3 1 Duster 360 14 8 360 245 3.2 3.6 16 0 0 3 4 Merc 240D 24 4 147 62 3.7 3.2 20 1 0 4 2 Merc 230 23 4 141 95 3.9 3.1 23 1 0 4 2 Merc 280 19 6 168 123 3.9 3.4 18 1 0 4 4 Merc 280C 18 6 168 123 3.9 3.4 19 1 0 4 4 Merc 450SE 16 8 276 180 3.1 4.1 17 0 0 3 3 Merc 450SL 17 8 276 180 3.1 3.7 18 0 0 3 3 Merc 450SLC 15 8 276 180 3.1 3.8 18 0 0 3 3 Cadillac Fleetwood 10 8 472 205 2.9 5.2 18 0 0 3 4 Lincoln Continental 10 8 460 215 3.0 5.4 18 0 0 3 4 Chrysler Imperial 15 8 440 230 3.2 5.3 17 0 0 3 4 Fiat 128 32 4 79 66 4.1 2.2 19 1 1 4 1 Honda Civic 30 4 76 52 4.9 1.6 19 1 1 4 2 Toyota Corolla 34 4 71 65 4.2 1.8 20 1 1 4 1 Toyota Corona 22 4 120 97 3.7 2.5 20 1 0 3 1 Dodge Challenger 16 8 318 150 2.8 3.5 17 0 0 3 2 AMC Javelin 15 8 304 150 3.1 3.4 17 0 0 3 2 Camaro Z28 13 8 350 245 3.7 3.8 15 0 0 3 4 Pontiac Firebird 19 8 400 175 3.1 3.8 17 0 0 3 2 Fiat X1-9 27 4 79 66 4.1 1.9 19 1 1 4 1 Porsche 914-2 26 4 120 91 4.4 2.1 17 0 1 5 2 Lotus Europa 30 4 95 113 3.8 1.5 17 1 1 5 2 Ford Pantera L 16 8 351 264 4.2 3.2 14 0 1 5 4 Ferrari Dino 20 6 145 175 3.6 2.8 16 0 1 5 6 Maserati Bora 15 8 301 335 3.5 3.6 15 0 1 5 8 Volvo 142E 21 4 121 109 4.1 2.8 19 1 1 4 2 # 在结果中Group.1表示汽缸数量(4、6或8)Group.2代表挡位数(3、4或5)。举例来说 拥有4个汽缸和3个挡位车型的每加仑汽油行驶英里数(mpg)均值为22。 # 跟书上数据不同可能是小数点位没有恢复设置。 # 在使用aggregate()函数的时候by中的变量必须在一个列表中(即使只有一个变量)。你可以在列表中为各组声明自定义的名称例如bylist(Group.cylcyl, Group.gearsgear)。aggdata -aggregate(mtcars, bylist(mtcars$cyl,mtcars$gear), FUNmean, na.rmTRUE)aggdataGroup.1 Group.2 mpg cyl disp hp drat wt qsec vs am gear carb 1 4 3 22 4 120 97 3.7 2.5 20 1.0 0.00 3 1.0 2 6 3 20 6 242 108 2.9 3.3 20 1.0 0.00 3 1.0 3 8 3 15 8 358 194 3.1 4.1 17 0.0 0.00 3 3.1 4 4 4 27 4 103 76 4.1 2.4 20 1.0 0.75 4 1.5 5 6 4 20 6 164 116 3.9 3.1 18 0.5 0.50 4 4.0 6 4 5 28 4 108 102 4.1 1.8 17 0.5 1.00 5 2.0 7 6 5 20 6 145 175 3.6 2.8 16 0.0 1.00 5 6.0 8 8 5 15 8 326 300 3.9 3.4 15 0.0 1.00 5 6.02.3.14. reshape2 ID - c(1,1,2,2)Time - (1,2,1,2) Error: unexpected , in Time - (1,Time - c(1,2,1,2)X1 - c(5,3,6,2)X2 - c(6,5,1,4)mydata - data.frame(ID, Time, X1, X2)mydataID Time X1 X2 1 1 1 5 6 2 1 2 3 5 3 2 1 6 1 4 2 2 2 4library(reshape2)md - melt(mydata, idc(ID, Time))mdID Time variable value 1 1 1 X1 5 2 1 2 X1 3 3 2 1 X1 6 4 2 2 X1 2 5 1 1 X2 6 6 1 2 X2 5 7 2 1 X2 1 8 2 2 X2 42.3.15. 其他常用 2.3.15.1. 区间均分 从from到to平均分成10份 min(sh500$close) [1] 2.816max(sh500$close) [1] 10.216seq(frommin(sh500$close), tomax(sh500$close), length.out 11) # 从from到to平均分成10份[1] 2.8160 3.5560 4.2959 5.0359 5.7759 6.5159 7.2558 7.9958 8.7358 9.4757 10.21572.3.15.2. 统计区间个数table(cut()) 场景将沪深300的收盘价均匀分10份每份是多少个各份区间大小 # 最小值min300 - min(sh300$close)min300 [1] 1.8139# 最大值max300 - max(sh300$close)max300 [1] 5.6294# 从[最小:最大]生成11个均分数即10个区间myseq - seq(min300, max300, length.out 11)myseq[1] 1.8139 2.1955 2.5770 2.9585 3.3401 3.7217 4.1032 4.4848 4.8663 5.2478 5.6294# 统计收盘价在10个区间内的个数mytable - table(cut(sh300$close, breaks myseq))mytable(1.81,2.2] (2.2,2.58] (2.58,2.96] (2.96,3.34] (3.34,3.72] (3.72,4.1] (4.1,4.48] 526 85 200 447 469 523 145 (4.48,4.87] (4.87,5.25] (5.25,5.63] 245 126 30 mytable[1] (1.81,2.2] 526# 绘制条形图barplot(mytable)3. 数据标准化 默认情况下函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1的标准化: newdata - scale(mydata) 要对每一列进行任意均值和标准差的标准化可以使用如下的代码: newdata - scale(mydata)*SD M 其中的M是想要的均值SD为想要的标准差。在非数值型的列上使用scale()函数将会报错。 要对指定列而不是整个矩阵或数据框进行标准化你可以使用这样的代码: newdata - transform(mydata, myvar scale(myvar)*1050) 此句将变量myvar标准化为均值50、标准差为10的变量。你将在5.3节数据处理问题的解决方法中用到scale()函数。 3.1. 案例-学生成绩排名 一组学生参加了数学、科 10 学和英语考试。为了给所有学生确定一个单一的成绩衡量指标需要将这些科目的成绩组合起来。 另外你还想将前20%的学生评定为A接下来20%的学生评定为B依次类推。最后你希望按字母顺序对学生排序。数据如表5-1所示。 说明 按照数值横向的数学、科学、英语是无法直接比较的需要对数据进行标准化处理。 # options(digits2)限定了输出小数点后数字的 位数options(digits2)# 准备数据框Student - c(John Davis, Angela Williams, Bullwinkle Moose,David Jones, Janice Markhammer, Cheryl Cushing,Reuven Ytzrhak, Greg Knox, Joel England,Mary Rayburn)Math - c(502, 600, 412, 358, 495, 512, 410, 625, 573, 522)Science - c(95, 99, 80, 82, 75, 85, 80, 95, 89, 86)English - c(25, 22, 18, 15, 20, 28, 15, 30, 27, 18)roster - data.frame(Student, Math, Science, English,stringsAsFactorsFALSE)rosterStudent Math Science English 1 John Davis 502 95 25 2 Angela Williams 600 99 22 3 Bullwinkle Moose 412 80 18 4 David Jones 358 82 15 5 Janice Markhammer 495 75 20 6 Cheryl Cushing 512 85 28 7 Reuven Ytzrhak 410 80 15 8 Greg Knox 625 95 30 9 Joel England 573 89 27 10 Mary Rayburn 522 86 18# 对2:4列进行标准化处理以便于横向比较。函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1的标准化。z - scale(roster[,2:4])zMath Science English[1,] 0.013 1.078 0.587[2,] 1.143 1.591 0.037[3,] -1.026 -0.847 -0.697[4,] -1.649 -0.590 -1.247[5,] -0.068 -1.489 -0.330[6,] 0.128 -0.205 1.137[7,] -1.049 -0.847 -1.247[8,] 1.432 1.078 1.504[9,] 0.832 0.308 0.954 [10,] 0.243 -0.077 -0.697 attr(,scaled:center)Math Science English 501 87 22 attr(,scaled:scale)Math Science English 86.7 7.8 5.5 # 通过函数mean()来计算各行的均值以获得综合得分并使用函数cbind()将其添加到花名册中 # apply函数常用来代替for循环。apply函数可以对数据矩阵、数据框、数组)按行或列循环计算对子元素进行迭代并把子元素以参数传递的形式给自定义的FUN函数中并以返回计算结果。 # apply(X, MARGIN, FUN, ...) X:数据 MARGIN: 按行或按按列计算1代表按行2代表按列 FUN: 自定义函数score - apply(z, 1, mean)score[1] 0.56 0.92 -0.86 -1.16 -0.63 0.35 -1.05 1.34 0.70 -0.18roster - cbind(roster, score)# quantile是计算百分位数。计算结果的解读是如果 标准化后的分值0.74那么这个分值就超过了80%的y - quantile(score, c(.8,.6,.4,.2))y80% 60% 40% 20% 0.74 0.44 -0.36 -0.89 # 对 标准化分值 判断是落在了哪个区间。roster$grade[score y[1]] - Aroster$grade[score y[1] score y[2]] - Broster$grade[score y[2] score y[3]] - Croster$grade[score y[3] score y[4]] - Droster$grade[score y[4]] - F# 将Student列按照空格拆开。把 strsplit()应用到一个字符串组成的向量上会返回一个列表name - strsplit((roster$Student), )name [[1]] [1] John Davis[[2]] [1] Angela Williams[[3]] [1] Bullwinkle Moose .... # 函数sapply()提取列表中每个成分的第一个元素放入一个储存名字 的向量Firstname并提取每个成分的第二个元素放入一个储存姓氏的向量Lastname。 # [ 是一个可以提取某个对象的一部分的函数——在这里它是用来提取列表name各成分中的第一个或第二个元素的。Firstname - sapply(name, [, 1)Lastname - sapply(name, [, 2) # 在数据框的左侧加入 Firstname、Lastname 2列roster - cbind(Firstname,Lastname, roster[,-1])rosterFirstname Lastname Math Science English score grade 1 John Davis 502 95 25 0.56 B 2 Angela Williams 600 99 22 0.92 A 3 Bullwinkle Moose 412 80 18 -0.86 D 4 David Jones 358 82 15 -1.16 F 5 Janice Markhammer 495 75 20 -0.63 D 6 Cheryl Cushing 512 85 28 0.35 C 7 Reuven Ytzrhak 410 80 15 -1.05 F 8 Greg Knox 625 95 30 1.34 A 9 Joel England 573 89 27 0.70 B 10 Mary Rayburn 522 86 18 -0.18 C# 根据Lastname、Firstname升序排列roster - roster[order(Lastname,Firstname),]rosterFirstname Lastname Math Science English score grade 6 Cheryl Cushing 512 85 28 0.35 C 1 John Davis 502 95 25 0.56 B 9 Joel England 573 89 27 0.70 B 4 David Jones 358 82 15 -1.16 F 8 Greg Knox 625 95 30 1.34 A 5 Janice Markhammer 495 75 20 -0.63 D 3 Bullwinkle Moose 412 80 18 -0.86 D 10 Mary Rayburn 522 86 18 -0.18 C 2 Angela Williams 600 99 22 0.92 A 7 Reuven Ytzrhak 410 80 15 -1.05 F数学函数等 3.2. 数学函数 3.3. 统计函数 3.4. 概率函数 x - pretty(c(-3,3), 30)length(x) [1] 31x[1] -3.0 -2.8 -2.6 -2.4 -2.2 -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 [19] 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0y - dnorm(x)y[1] 0.004431848 0.007915452 0.013582969 0.022394530 0.035474593 0.053990967 0.078950158[8] 0.110920835 0.149727466 0.194186055 0.241970725 0.289691553 0.333224603 0.368270140 [15] 0.391042694 0.398942280 0.391042694 0.368270140 0.333224603 0.289691553 0.241970725 [22] 0.194186055 0.149727466 0.110920835 0.078950158 0.053990967 0.035474593 0.022394530 [29] 0.013582969 0.007915452 0.004431848plot(x, y,type l,xlab Normal Deviate,ylab Density,yaxs i)3.5. 字符处理函数 3.6. 其他实用函数 4. 列表 g - My First Listh - c(25, 26, 18, 39)j - matrix(1:10, nrow5)k - c(one, two, three)mylist - list(titleg, agesh, j, k)mylist $title [1] My First List$ages [1] 25 26 18 39[[3]][,1] [,2] [1,] 1 6 [2,] 2 7 [3,] 3 8 [4,] 4 9 [5,] 5 10[[4]] [1] one two three mylist[title] $title [1] My First List mylist[3] # 这种操作很奇怪取出来的矩阵matrix无法直接取数操作要用下面的方法双[[]] [[1]][,1] [,2] [1,] 1 6 [2,] 2 7 [3,] 3 8 [4,] 4 9 [5,] 5 10 # 你也可以通过在双重方括号中指明代表某个成分的数字或名称来访问列表中的元素。mylist[[3]][,1] [,2] [1,] 1 6 [2,] 2 7 [3,] 3 8 [4,] 4 9 [5,] 5 10mylist[[3]][2,2] [1] 75. 数据输入输出 # 通过edit输入mydata - data.frame(agenumeric(0),gendercharacter(0), weightnumeric(0))mydata - edit(mydata) Error in check_for_XQuartz(file.path(R.home(modules), R_de.so)) : X11 library is missing: install XQuartz from www.xquartz.orginstall.packages(XQuartz) Warning in install.packages :package ‘XQuartz’ is not available for this version of RA version of this package for your version of R might be available elsewhere, see the ideas at https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages5.0.1. 读取、写入csv文件 # 读取csv文件逗号分隔列date作为行名date作为行名那date那一列就没了sh510300 - read.csv(SH510300.csv, header TRUE, sep ,, row.names date)head(sh510300)uuid date.1 volume open high low close chg 2012-05-28 SH510300|2012-05-28 2012-05-28 1277518769 2.1572 2.2046 2.1513 2.2020 0.0255 2012-05-29 SH510300|2012-05-29 2012-05-29 714949008 2.2004 2.2503 2.2004 2.2359 0.0339 2012-05-30 SH510300|2012-05-30 2012-05-30 265887198 2.2342 2.2384 2.2266 2.2291 -0.0068 2012-05-31 SH510300|2012-05-31 2012-05-31 178155984 2.2164 2.2367 2.2097 2.2240 -0.0051 2012-06-01 SH510300|2012-06-01 2012-06-01 179350035 2.2232 2.2494 2.2156 2.2240 0.0000 2012-06-04 SH510300|2012-06-04 2012-06-04 546074272 2.1995 2.2020 2.1606 2.1631 -0.0609sh510300[,date] Error in [.data.frame(sh510300, , date) : undefined columns selected# 取出一行2012-05-28这个日期的行数据sh510300[2012-05-28,]uuid date.1 volume open high low close chg percent 2012-05-28 SH510300|2012-05-28 2012-05-28 1277518769 2.1572 2.2046 2.1513 2.202 0.0255 1.17turnoverrate amount 2012-05-28 10.45 NA# 写入csv文件write.csv(sh510300, new_file.csv) 6. 画图 6.1. 收盘价日历图 1.事先已准备好“日期date-收盘价close”的csv文件 2.读取csv 3.将日期x轴进行类型转换 4.使用plot画图 sh300 - read.csv(SH510300-收盘价.csv) # 读取csv数据head(sh300)date close 1 2012/5/28 2.2020 2 2012/5/29 2.2359 3 2012/5/30 2.2291 4 2012/5/31 2.2240 5 2012/6/1 2.2240 6 2012/6/4 2.1631date300 - as.Date(sh300$date, %Y/%m/%d,) # 将日期字符串转为日期格式plot(date300, sh300$close) # 画图下面就是画出来的图1、圆圈点太大2、没有连线3、x轴比较散4、图是无交互式的只能看有很多调节参数这里只是简单实用了plot函数并没有进行低级调整。 使用plot(date300, sh300$close, type b, lty 1, pch 20) 标题、cex缩放、x轴标题y轴标题 plot(date300, sh300$close, type b, lty 1, pch 20, cex 0.3, main510300, xlab date, ylab close price)关于生成的图片的尺寸试了效果不好还需要进一步研究。 6.2. 2图2y轴多元素 x - c(1:10)y - xz - 10/x # 10.000000 5.000000 3.333333 2.500000 2.000000 1.666667 1.428571 1.250000 1.111111 1.000000opar - par(no.readonlyTRUE) # 添加参数no.readonlyTRUE可以生成一个可以修改的当前图形参数列表。将原始参数保留为副本opar便于参数恢复par(marc(5, 4, 4, 8) 0.1) # mar以数值向量表示的边界大小顺序为“下、左、上、右”单位为英分1。默认值为 c(5, 4, 4, 2) 0.1plot(x, y, typeb, pch21, colred, yaxtn, lty3, annFALSE) # 上句x轴是向量xy轴是向量ypch21是空心圆点col是red红色线条和点yaxt n禁用默认生成的y轴lty 3是dot点线ann 逻辑值是否使用默认的x、y轴标注注释lines(x, z, typeb, pch22, colblue, lty2) # 上句x轴是向量xy轴是向量zpch 22是空心方块col颜色是蓝色lty 2是虚线axis(2, atx, labelsx, col.axisred, las2) # 使用函数axis()来创建自定义的坐标轴而非使用R中的默认坐标轴下面有详细介绍 # 2代表在左侧y轴。at 一个数值型向量表示需要绘制刻度线的位置从(1:10)都要绘制。 # labels 一个字符型向量表示置于刻度线旁边的文字标签(如果为 NULL则将直接使用 at 中的值) # las 标签是否平行于(0)或垂直于(2)坐标轴axis(4, atz, labelsround(z, digits2), col.axisblue, las2, cex.axis0.7, tck-.01) # 4代表右侧y轴。at代表的刻度显示的数值需要用label画。round(z, digits2)取2位小数。col.axis蓝色坐标轴。las 垂直于(2)坐标轴。cex.axis 0.7倍缩放。 # tck 刻度线的长度以相对于绘图区域大小的分数表示(负值表示在图形外侧正值表示在图形内侧0 表示禁用刻度1 表示绘制网格线);默认值为–0.01mtext(y1/x, side4, line3, cex.lab1, las2, colblue) # side 指定用来放置文本的边。1下2左3上4右。你可以指定参数 line来内移或外移文本随着值的增加文本将外移。也可使用 adj0 将文本向左下对齐或使用 adj1 右上对齐title(An Example of Creative Axes, xlabX values, ylabYX)par(opar) # #恢复原始参数绘制的结果值得说的是随着每一行代码的执行图上的线、轴、图例是逐渐丰富起来的magic 可以使用函数 axis() 来创建自定义的坐标轴而非使用R中的默认坐标轴。其格式为: axis(side, at, labels, pos, lty, col, las, tck, …) 6.2.1. mtcars点图 一幅散点图(车重与每加仑汽油行驶英里数)的示例各点均添加了标签(车型) attach(mtcars)plot(wt, mpg,mainMileage vs. Car Weight,xlabWeight, ylabMileage,pch18, colblue)text(wt, mpg,row.names(mtcars),cex0.5, pos4, colred)detach(mtcars)6.3. 条形图 install.packages(vcd)head(Arthritis)ID Treatment Sex Age Improved 1 57 Treated Male 27 Some 2 46 Treated Male 29 None 3 77 Treated Male 30 None 4 17 Treated Male 32 Marked 5 36 Treated Male 46 Marked 6 23 Treated Male 58 Markedcounts - table(Arthritis$Improved)countsNone Some Marked 42 14 28 barplot(counts,mainSimple Bar Plot,xlabImprovement, ylabFrequency) # 在这个casebarplot和plot函数绘制的图形是一样的。上面table()函数的作用是表格化。plot(Arthritis$Improved, mainSimple Bar Plot,xlabImproved, ylabFrequency)6.4. 分组条形图 head(Arthritis)ID Treatment Sex Age Improved 1 57 Treated Male 27 Some 2 46 Treated Male 29 None 3 77 Treated Male 30 None 4 17 Treated Male 32 Marked 5 36 Treated Male 46 Marked 6 23 Treated Male 58 Markedcounts - table(Arthritis$Improved, Arthritis$Treatment)countsPlacebo TreatedNone 29 13Some 7 7Marked 7 21# [pləˈsiːbəʊ]barplot(counts,mainGrouped Bar Plot,xlabTreatment, ylabFrequency,colc(red, yellow, green),legendrownames(counts), besideTRUE)均值条形图奇怪的概念 states - data.frame(state.region, state.x77)head(states)state.region Population Income Illiteracy Life.Exp Murder HS.Grad Frost Area Alabama South 3615 3624 2.1 69.05 15.1 41.3 20 50708 Alaska West 365 6315 1.5 69.31 11.3 66.7 152 566432 Arizona West 2212 4530 1.8 70.55 7.8 58.1 15 113417 Arkansas South 2110 3378 1.9 70.66 10.1 39.9 65 51945 California West 21198 5114 1.1 71.71 10.3 62.6 20 156361 Colorado West 2541 4884 0.7 72.06 6.8 63.9 166 103766means - aggregate(states$Illiteracy, bylist(state.region), FUNmean)meansGroup.1 x 1 Northeast 1.0000 2 South 1.7375 3 North Central 0.7000 4 West 1.0231barplot(means$x, names.argmeans$Group.1)title(Mean Illiteracy Rate)6.5. 饼图 meansGroup.1 x 1 Northeast 1.0000 2 South 1.7375 3 North Central 0.7000 4 West 1.0231 labels - paste(means$Group.1, round(means$x, digits 3), sep )labels [1] Northeast1 South1.738 North Central0.7 West1.023 pie(means$x, labels labels)6.6. 直方图 par(mfrowc(2,2))hist(mtcars$mpg)mtcars$mpg[1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4 10.4 14.7 32.4 30.4 [20] 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7 15.0 21.4# 参数breaks用于控制组的数量也就是说会展示12个柱子这样的话如果是绘制收盘价区间分布就不用那么复杂计算了。hist(mtcars$mpg,breaks12,colred,xlabMiles Per Gallon,mainColored histogram with 12 bins)# 沪深300收盘价分布直方图(图显示的内容还是比较少的能看出来的还是收盘价集中在3-4元之间。)sh300 - read.csv(SH510300-收盘价.csv)head(sh300)date close 1 2012/5/28 2.2020 2 2012/5/29 2.2359 3 2012/5/30 2.2291 4 2012/5/31 2.2240 5 2012/6/1 2.2240 6 2012/6/4 2.1631hist(sh300$close, breaks 10) density(sh300$close)Call:density.default(x sh300$close)Data: sh300$close (2790 obs.); Bandwidth bw 0.1528x y Min. :1.356 Min. :0.0000252 1st Qu.:2.539 1st Qu.:0.0661411 Median :3.722 Median :0.1852631 Mean :3.722 Mean :0.2111115 3rd Qu.:4.905 3rd Qu.:0.3639130 Max. :6.088 Max. :0.5344925 hist(mtcars$mpg,freqFALSE,breaks12,colred,xlabMiles Per Gallon,mainHistogram, rug plot, density curve) # 轴须图 x轴上多rug(jitter(mtcars$mpg))lines(density(mtcars$mpg), colblue, lwd2)density(mtcars$mpg)Call:density.default(x mtcars$mpg)Data: mtcars$mpg (32 obs.); Bandwidth bw 2.477x y Min. : 2.97 Min. :6.481e-05 1st Qu.:12.56 1st Qu.:5.461e-03 Median :22.15 Median :1.926e-02 Mean :22.15 Mean :2.604e-02 3rd Qu.:31.74 3rd Qu.:4.530e-02 Max. :41.33 Max. :6.795e-02 6.7. 核密度图 # 收盘价概率分布plot(density(sh300$close)) # 分成了6个区间plot(density(sh300$close, cut 5))6.8. 点图 # 比较奇怪点图的y轴数据是怎么来的dotchart(mtcars$mpg, labelsrow.names(mtcars), cex.7,mainGas Mileage for Car Models,xlabMiles Per Gallon)7. 统计分析 7.1. summary myvars - c(mpg, hp, wt) # summary()函数提供了最小值、最大值、四分位数和数值型变量的均值以及因子向量和逻辑型向量的频数统计。summary(mtcars[myvars])mpg hp wt Min. :10.4 Min. : 52.0 Min. :1.51 1st Qu.:15.4 1st Qu.: 96.5 1st Qu.:2.58 Median :19.2 Median :123.0 Median :3.33 Mean :20.1 Mean :146.7 Mean :3.22 3rd Qu.:22.8 3rd Qu.:180.0 3rd Qu.:3.61 Max. :33.9 Max. :335.0 Max. :5.42mean()、sd()、var()、min()、max()、median()、length()、range()和quantile()。函数fivenum()可返回图基五数总括(Tukey’s five-number summary即最小值、下四分位数、中位数、上四分位数和最大值)。 7.2. cor相关系数 states- state.x77[,1:6]statesPopulation Income Illiteracy Life Exp Murder HS Grad Alabama 3615 3624 2.1 69.05 15.1 41.3 Alaska 365 6315 1.5 69.31 11.3 66.7 Arizona 2212 4530 1.8 70.55 7.8 58.1 Arkansas 2110 3378 1.9 70.66 10.1 39.9 California 21198 5114 1.1 71.71 10.3 62.6 Colorado 2541 4884 0.7 72.06 6.8 63.9 ......cor(states)Population Income Illiteracy Life Exp Murder HS Grad Population 1.000000 0.20823 0.10762 -0.068052 0.34364 -0.09849 Income 0.208228 1.00000 -0.43708 0.340255 -0.23008 0.61993 Illiteracy 0.107622 -0.43708 1.00000 -0.588478 0.70298 -0.65719 Life Exp -0.068052 0.34026 -0.58848 1.000000 -0.78085 0.58222 Murder 0.343643 -0.23008 0.70298 -0.780846 1.00000 -0.48797 HS Grad -0.098490 0.61993 -0.65719 0.582216 -0.48797 1.00000 # 我们可以看到收入和高中毕业率之间存在很强的正相关而文盲率和预期寿命之间存在很强的负相关。# 请注意在默认情况下得到的结果是一个方阵(所有变量之间两两计算相关)。你同样可以计算非方形的相关矩阵。观察以下示例:x - states[,c(Population, Income, Illiteracy, HS Grad)]y - states[,c(Life Exp, Murder)]cor(x,y)Life Exp Murder Population -0.068052 0.34364 Income 0.340255 -0.23008 Illiteracy -0.588478 0.70298 HS Grad 0.582216 -0.487977.3. 回归 回归分析都是统计学的核心。它其实是一个广义的概念通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量、效标变量或结果变量)的方法。通常回归分析可以用来挑选与响应变量相关的解释变量可以描述两者的关系也可以生成一个等式通过解释变量来预测响应变量。
http://www.dnsts.com.cn/news/198733.html

相关文章:

  • 苏州网站建设搜q479185700中小企业网站制作平台
  • 广州专业建设网站南宁著名的网站
  • 襄阳住房和城乡建设网站建设银行演示网站
  • 国家企业信用信息没有网站怎么做昆明网站建设-中国互联
  • 综合性医院网站源代码下载个人创意logo设计
  • 建设银行小微企业网站进不了市场咨询公司排名
  • 商务网站建设与维护补考试卷微信小程序开发者文档
  • 检测网站是否被做跳转图片展示网站模板
  • 如何查看网站的建设者wordpress百家
  • 五家渠建设局网站wordpress修改语言包目录
  • 基于ASP与Access数据库的网站开发电子商务网站建设书
  • 大连专业制作网站视频网站中滑动列表怎么做的
  • 新网站没有死链接怎么做在线商城平台
  • 广东网站建设公司报价陕西省建设工程招投标信息网官网
  • 网站的网络推广个人二级网站怎么做
  • 可信赖的响应式网站聊城网站优化信息
  • 网站后台编辑器不能用云网站系统
  • 临安市建设局网站网络推广 网站制作
  • 郑州做营销型网站黄金多少钱一克
  • 菜鸟建站网wordpress 小蘑菇
  • 网站建设 培训班 成都产品推广方法有哪些
  • 门户网站是网络表达吗广告传媒有限公司
  • 进地铁建设公司网站关键词排名推广
  • 浙江省通信管理局 网站备案 管理部门wordpress微信分享图
  • 南京做网站公司地点公众号推送怎么制作
  • 厦门网站模板响应式网站制作教程
  • 绿色食品网站开发步骤平台网站开发公司
  • 网站建设就找奇思网络游戏定制公司
  • 网络营销 网站北京大型商场
  • 辽宁高速公路建设局网站wordpress做管理系统