Iris的R语言命令工具箱(1)

    xiaoxiao2021-03-26  39

    Iris的R语言命令工具箱(1)

    最近在做数据分析,使用了R语言做了些数据处理和可视化,在此记下遇到过的问题、应用过的命令、处理方式以及工具包~

    版权声明:本文为博主原创文章,转载请注明本文地址。http://www.cnblogs.com/o0Iris0o/p/6365927.html

    1.CSV格式文件数据导入导出

    1.1 导入CSV数据(导入CSV数据之后储存为“Data Frame数据框”数据结构)

    ## 导入csv数据 ## 第一行没有表头 mytable <- read.csv("/FilePath/read.csv", sep=",", header=FALSE) ## 第一行有表头 mytable <- read.csv("/FilePath/read.csv", sep=",", header=TRUE) ## 手动选择文件读入 mytable <-read.table(file.choose(),stringsAsFactors=FALSE,header = FALSE)

    1.2 导出CSV数据

    write.csv(mytable,"/FilePath/write.csv",row.names = FALSE)

    2.删除指定变量或对象

    1、直接删除 > a<-c(1,2,3) > rm(a) 2、以字符串形式的方式删除 > a<-c(1,2,3) > rm('a') 3、删除不再需要的对象 在使用R语言的过程中,除了要保留特定的对象外,其他的对象不再需要 > a<-ls() > rm(list=a[which(a!='c2' & a !='m2' & a !='cpu1' & a !='mem1')]) > ls() [1] "a" "c2" "cpu1" "m2" "mem1" 如这个例子中,除了a,c2,cpu1,m2,mem1变量或对象外,其他的对象和变量均删除 4、对象的查找 有时,需要查找已经存在哪些变量,可根据名字来查找: > objects(pattern='^m.*') 查找以m开头的对象,pattern为模式(匹配规则)

    3.数据框Data Frame的操作

    参考博客:http://www.cnblogs.com/studyzy/p/4316118.html

    初始化Data Frame

    ## 例:初始化一个student的Data Frame student<-data.frame(ID=c(11,12,13),Name=c("Devin","Edward","Wenli"),Gender=c("M","M","F"),Birthdate=c("1984-12-29","1983-5-6","1986-8-8"))

    此时查看student的内容为:

    ID Name Gender Birthdate

    1 11 Devin M 1984-12-29

    2 12 Edward M 1983-5-6

    3 13 Wenli F 1986-8-8

    查看列名:使用names函数

    ##查看列名:使用names函数 names(student) ##查看行名:使用到row.names函数 row.names(student) ##若希望将 ID 作为行名 row.names(student)<-student$ID ##或在初始化date.frame的时候,有参数row.names可以设置行名的向量

    访问元素

    ##访问第一行: student[1,] ##访问第二列: student[,2] ##使用列的Index或者列名可以选取要访问的哪些列。比如要ID、Name和Gender ##注意下标第一个元素就是1 IdNameGender<-student[1:3] ##另一种方法 IdNameGender<-student[c("ID","Name","Gender")] ##如果是只访问某一列,返回的是Vector类型的,那么可以使用双层括号[[]]或者$来访问 ##例如访问student的Name name<-student[[2]] ##或者 name<-student[["Name"]] ##或者 name<-student$Name ##使用attach和detach函数可以使得访问列时不需要总是跟着变量名在前面 ##比如要打印所有Name: attach(student) print(Name) detach(student) ##还可以换一种简洁一点的写法就是用with函数 with(student,{ n<-Name print(n) }) ##这里的n作用域只在大括号内 ##如果想在with函数中对全局的变量进行赋值,那么需要使用"<<-"这样一个运算符。

    合并两个Data Frame

    tableall = merge(table1,table2,all.x = TRUE, all.y = TRUE)

    4.对于CSV/Excel时间数据的处理-as.POSIXct()函数

    将时间数据转化为时间格式

    CSV/Excel文件导入成Data Frame格式数据之后,原先在CSV/Excel中的时间格式数据如“2016-02-11 03:42:10.724”被储存为“numeric”格式,如果不更改格式,在后续可视化处理的时候(如以时间为X轴,画散点图折线图)就会遇到问题

    解决方法:

    ##将mytable中名为Time的列转化为时间格式 mytable$Time<-as.POSIXct(mytable$Time) as.POSIXct(c,'%Y-%m-%d %H:%M',tz='UTC') as.POSIXct(c,'%Y/%m/%d %H:%M',tz='UTC') ##另:as.Date截取日期部分转化成时间格式 c="2008/2/25 0:20" as.Date(c,'%Y/%m/%d %H:%M') ##结果为: 2008-02-25

    5.数据预处理-“dplyr”和“tidyr”扩展包

    此处我只应用它做了简单的筛选,关于更多详细用法链接如下

    扩展阅读:http://www.cnblogs.com/shangfr/p/6110614.html

    扩展阅读:http://www.360doc.com/content/15/0824/21/18847742\_494543772.shtml

    ##安装扩展包 install.packages("dplyr") install.packages("tidyr") ##筛选数据,清洗数据 ##将过长过大的数据集转换为显示更友好的 tbl_df 类型 tablefilter <- tbl_df(table) result1<-filter(tablefilter,tablefilter$Price<20.5) result2<-filter(tablefilter, tablefilter$Num<10 | tablefilter1$Price>1100) result3<-filter(tablefilter, Month == 1 | Month == 2)

    6.计算方差、样本均值、标准差等-apply函数族

    apply族函数详解:

    博客1:http://blog.csdn.net/wltom1985/article/details/50403720

    博客2:http://blog.sina.com.cn/s/blog\_403aa80a010174dj.html

    ## 计算方差、样本均值、标准差等 ## 1代表行,2代表列 例1:xx <- matrix(1:20, 4, 5) colMeans(xx) #列均值 colSums(xx) #列和 其余大部分都要用到apply()函数 例2:xx <- matrix(1:20, 4, 5) apply(xx, 2, mean) #列均值,等同于colMeans(xx) apply(xx, 2, sum) #列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。 apply(xx, 1, var) #行方差 apply(xx, 2, max) #每列最大值 apply(xx, 2, rev) #每列的数反排列 apply(data,2,sd) #列标准差

    7.相关性分析

    pearson、spearman相关分析及相关系数矩阵可视化

    ## cor(mytable) 对mytable所有属性进行相关性分析 ##(相关性分析不支持时间戳格式的列以及方差为0的列,应先删去对应列) corrp<-cor(table1) ## 默认是pearson相关分析 corrs <- cor(table1[4:14],method = 'spearman') ## spearman相关分析 ## 相关性分析可视化 ## 需要下载corrplot扩展包 install.packages("corrplot") corrplot(corr = corrp,method="square") ## corrplot(corr = corrs, method = 'color', addCoef.col="grey")

    更多关于corrplot扩展包:https://sanwen8.cn/p/139qu99.html

    8.取消科学计数法:

    options(scipen=200) ##取消科学计数法

    9.ggplot扩展包

    -见Iris的R语言命令工具箱(2) 明天继续~

    转载请注明原文地址: https://ju.6miu.com/read-661632.html

    最新回复(0)