R-数据基本操作

#帮助函数
help.start()   打开帮助文档首页
help("foo")或?foo   查看函数foo的帮助(引号可以省略)
help.search("foo")或??foo   以foo为关键词搜索本地帮助文档
example("foo")   函数foo的使用示例(引号可以省略)
RSiteSearch("foo")   以foo为关键词搜索在线文档和邮件列表存档
apropos("foo", mode="function")   列出名称中含有foo的所有可用函数
data()   列出当前已加载包中所含的所有可用示例数据集
vignette()   列出当前已安装包中所有可用的vignette文档
vignette("foo")   为主题foo显示指定的vignette文档
#管理R空间的函数
getwd() 显示当前的工作目录
setwd("mydirectory") 修改当前的工作目录为mydirectory
ls() 列出当前工作空间中的对象
rm(objectlist) 移除(删除)一个或多个对象
help(options) 显示可用选项的说明
options() 显示或设置当前选项
history(#) 显示最近使用过的#个命令(默认值为25)
savehistory("myfile") 保存命令历史到文件myfile中(默认值为.Rhistory)
loadhistory("myfile") 载入一个命令历史文件(默认值为.Rhistory)
save.image("myfile") 保存工作空间到文件myfile中(默认值为.RData)
save(objectlist, file="myfile") 保存指定对象到一个文件中
load("myfile") 读取一个工作空间到当前会话中(默认值为.RData)
q() 退出R。将会询问你是否保存工作空间
#输入与输出
输入:函数source("filename")可在当前会话中执行一个脚本
文本输出:函数sink("filename")将输出重定向到文件filename中
图形输出:
pdf("filename.pdf") PDF文件
win.metafile("filename.wmf") Windows图元文件
png("filename.png") PBG文件
jpeg("filename.jpg") JPEG文件
bmp("filename.bmp") BMP文件
postscript("filename.ps") PostScript文件
sink()可以重定向文本输出;dev.off()将输出返回到终端

#数据结构
向量:c()
矩阵:matrix(vector,nrow=,ncol=,byrow=T/F,dimnames=list(rownames,colnames))
数组:array(vector,dimensions,dimnames)
数据框:data.frame(col1,col2,col3)
#选取数据框中的元素:  patientdata[1:2];patientdata[c("diabets","status")];patientdata$age
#列联表:table()
#简化数据提取: attach(),detach();
with(mtcars,{summary(mpg,disp,wt)
         plot(mpg,disp)
         plot(mpg,wt)
})
实例标识符:patientdata<-data.frame(patientID,age,diabets,ststus,row.names=patientID)
因子:diabets<-factor(diabets);diabets<-factor(status,ordered=TRUE,levels=c("poor","improved","excellent")))
列表:mylist<-list(name1=object1,name2=object2,...)
#数据的输入
导入文本数据:read.table(file,header=T,sep=",",row.names="name",stringsAsFactors=FALSE,)
导入Excel数据:library(RODBC);library(xlsx)
导入spss数据: library(Hmisc);spss.get("mydata.sav",ues.value.labels=TRUE)
#值标签
patientdata$gender<-factor(patientdata$gender,levels=c(1,2),labels=c("male","female"))

#基本数据管理
创建新变量 mydata$sumx<-mydata$x1+mydata$x2 数据集中创建了一个新变量sumx
mydata<-transform(mydata,sumx=x1+x2)
变量重编码 variable[condition] <- expression;leadership$age[leadership$age==99]<-NA
leadership<-within(leadership,{
           agecat<-NA
           agecat[age>75]<-"elder"
           agecat[age>=55 &age<=75]<-"middle aged"
           agecat[age<55]<-"youth"
})
变量的重命名 1.fix(leadership);2.rename(dataframe,c(oldname="newname",...);3.names(),names(leadership)[2]<-"testdate"
缺失值:1.重编码某些值为缺失值;2.分析中排除缺失值(na.rm=TRUE)3.na.omit() 移除所有缺失值的观测
日期: as.Date(x, "input_format")
类型转换:
is.numeric()       as.numeric()
is.character()     as.character()
is.vector()        as.vector()
is.matrix()        as.matrix()
is.data.frame()    as.data.frame()
is.factor()        as.factor()
is.logical()       as.logical()
数据排序:
newdat<-leadership[order(gender,age),];newdat<-leadership[order(gender,-age),]
数据集的合并:
添加列:merge(dataframeA,dastaframeB,by=c("ID","country"));cbind(a,b)
添加行:rbind()
数据集取子集:
选入(保留)变量:newdata<-leadership[,c(6:10)]或者newdata<-leadership[c(6:10)];  myvars<-c("q1","q2","q3"),newdata<-leadership[myvars]
剔除(丢弃)变量:
1.myvars<-names(leadership) %in% c("q3","q4");newdata<-leadership[!mycars]
2.newdata<-leadership[c(-8,-9)]
选入观测:
1.newdata<-leadership[1:3,]
2.newdata<-leadership[which(leadership$gender=="M" & leadership$age>60),]
subset()函数
newdata<-subset(leadership,age>=35 | age<24,select=c(q1,q2,q3,q4))
随机抽样
mysample<-leadership[sample(1:nrow(leadership),3,replace=FALSE),]
数据的标准化
1.newdata<-scale(mydata);2.newdata<-scale(mydata)*SD+M;3.newdata<-transform(mydata,myvar=scale(myvar)*SD+M)
#数值(数学、统计、概率)函数和字符处理函数
#将函数应用于矩阵和数据框
apply(x,margin,fun,...): x为数据对象,MARGIN是维度的下标,FUN是由你指定的函数,而...则包括了任何想传
递给FUN的参数
lapply,sapply将函数应用于列表
控制流
1.重复和循环
for (var in seq) statement
while (cond) ststement
2.条件执行
if-else
if (cond) statement
if (cond) statement1 else statement2
ifelse
ifelse(cond,statement1,statement2)
switch
switch(expr,...)
整合和重构
1.整合数据 
aggregate(x,by,FUN),aggregate(mtcars,by=list(Group.cyl=cyl,Group.gear=gear),FUN=mean,na,rm=TRUE)
reshape包:融合melt(mydata,id=(c()));重铸 cast(md,formular,FUN)


 

猜你喜欢

转载自blog.csdn.net/zhangzhen6239/article/details/85923626