毕业前,经常在笔记本上写下学习小目标、做题小技巧等,会抽出时间反复浏览。工作后,也习惯性的记下笔记,记录遇到的困难、解决的方法,本是积累进步的有效途径,但却很难抽出时间像以往那样翻看记录的笔记,或许是因为下班后只带电脑,不带纸质版书籍或笔记的习惯吧,为此寻找一个可以记录心得的APP。最近看了《王冠》、《黑镜》,正剧开始前都会插播两段小广告,简书就是其中之一(简书的编辑效果较差)。
使用R处理数据时,发现了一些很便利的函数,现记录下来: 1、读取很大的CSV格式数据时,使用data.table包十分便利: library(data.table) data=fread('E:/work/data.csv',header=T,data.table=F,verbose=T) #header:首列是否为列名;data.table:data为数据框ordata.table;verbose:显示读取进度,花费时间 2、读取excel格式数据,使用openxlsx包: library(openxlsx) data=read.xlsx(xlsxFile='E:/work/data.xlsx',sheet=n,colNames=T,colNames=F) #sheet:提取指定数据表;默认首列为列名,首列不是行名 3、R读取数据data时,data默认为数据框,字符型列为因子,使用时一般需要as.character()将因子转换为字符型。 4、匹配字符串向量STR的哪些元素包含某个字符串s: grep(pattern=s,STR) #输出包含s的元素位置 5、data.frame增加某列,使用transform(): data=transform(data,newcol=-data[,1]) #newcol可为根据某个数据是否满足条件进行赋值 6、identical判断两个数据是否完全相同 identical(data1,data2) #返回TRUE表示完全相同,False表示不完全相同 7、有/无放回随机抽取:sample() sample(vector,num,replace=FALSE) #从vector中不放回的抽取num个元素 8、排序:oredr() & sort() sort(vector,decreasing=FALSE) #默认升序,输出排序后的向量 order(vector,decreasing=FALSE) #默认升序,输出排序后元素在原向量中的位置 vector[order(vector)]等于sort(vector) 9、某向量在另外一个向量中首次出现的位置,使用match() match(A,B) #A中元素在B中首次出现的位置,若A中元素在B中没有,则相应位置为NA 10、寻找两个向量的公共元素,使用intersect() intersect(A,B) #输出A和B的公共元素
CONTINUED...
下期将记录data.table数据的常用操作/ggplot2的基本概念,敬请期待!
网友评论