目录
getwd();
setwd('c:/');
加载文件
source('myfunction.R');
R的数据类型
1.基础类型
character,
numeric(Inf 无穷大,1/0;NaN 非值 0/0),integer(需要在后面加上L,才能指定为integer,否则为numeric),logical,complex
2.对象
最基础的为vector(只能包含同类型变量,创建空vector()),list可包含不同类型变量
对象有属性,可使用attributes()方法查看如:
names,dimnames;dimentions;class;length;
创建vector
使用c()函数,当类型不同时,会转成同一种变量
用vector('numeric',length=10),创建类型默认值长度的向量
类型转换
x=0:6
class(x)#integer
as.character(x)
as.logical(x)
as.numeric(x)
创建矩阵
x<-matrix(nrow=3,ncol=3)
dim(x)
attributes(x)
x<-matrix(1:6,nrow=2,ncol=3)
x<-1:6
dim(x)<-c(2,3)
x<-1:3
y<-2:4
cbind(x,y)
rbind(x,y)
Factor用于表示不同类别
x<-factor("yes","yes","no","yes","no")
#x<-factor(c("yes","yes","no","yes","no"),levels=c("yes","no"))
#指定第一级别是yes,第二级别是no
table(x)
unclass(x)
dataFrame,通常由read.csv()等方法生成
也可以使用
x<-data.frame(foo=1:4,bar=c(T,T,F,F))
names描述变量
x<-1:3
names(x)<-c("a","b","c")
中括号,取值
x<-1:6
x[2]
x[x>1]
u<-x>1#得到一个true,false向量
x[u]#得到大于1的列
x<-matrix(1:6,nrow=2,ncol=3)
x[1,]#得到一个向量
x[1, ,drop=FALSE]#得到一个矩阵
list,取值
x<-list(foo=1:4,bar=c("a","b"))
x$foo
x["foo"]#得到一个list
x[["foo"]]得到真实的值
name<-"foo"
x$name#不能得到foo的值
x[[name]]#可以得到foo的值
#局部匹配
x$fo
x[["fo",exact=FALSE]]
去除坏值
bad<-is.na(x)
x[!bad]
good<-complete.cases(x,y)
x[good]
y[good]
读文件
read.table参数
sep分隔符,comment.char=“#” 以此字符开头为注释行,=""表示全部为数据,header=TRUE 第一行为标题
colclasses 指定各列的数据类型,可加快速度 ;nrows 读取几行 ;skip 跳过几行
dput,dget dump,source
file,gzfile,bzfile,url