R
操作数据框的时候,在每个变量名前都键入一次数据框名称(eg: dataframe) dataframe$ 可能会让人生厌,所以不妨走一些捷径。可以联合使用函数attach()和detach()函数或单独使用with()函数来简化代码。
- attach() 和 detach()
attach() 可将数据框添加到R的搜索路径中。
eg: 有一个数据框dataframe有两列,一列名为name,第二列名为age
summary(dataframe$age)
plot(dataframe$name,dataframe$age)
可简化代码为:
attach(dataframe)
summary(age)
plot(name,age)
detach(dataframe)
函数detach()将数据框从搜索路径中移除,值得注意的是,detach()并不会对数据框本身做任何处理。这句可以省略的,但其实它应当被例行的放入代码中,因为这是一个好的编程习惯。
当名称相同的对象不止一个时,这种方法的局限性就非常明显。即:在数据框被绑定前,若环境中已经有一个与列名同名的对象,在这种情况下,原始对象将取得优先权。任何情况下,都要当心那些告知你某个对象已被屏蔽(masked)的警告。
使用with()函数可取代attach()和detach()两个函数
with(dataframe,{
summary(age)
plot(name,age)
})
with()函数的局限性在于,赋值仅仅在此函数括号内生效,为了避免,可使用如下代码:
with(dataframe,{
summary <<-summary(age)
plot <<- plot(name,age)
})
- R中基本的数学函数
abs() 取绝对值
sqrt() 平方根,与x^(0.5)等价
ceiling() 不小于x的最小整数
floor() 不大于x的最大整数
trunc() 向0的方向截取的x中的整数部分
round(x,digits=n) 将x舍入为指定位的小数
signif(x,digits=n) 将x舍入为指定的有效数字位数
log(x) 自然对数
log10(x) 常用对数
log(x,base=n) 对x取n为底的对数
exp(x) 指数函数
- R中常用统计函数
mean(x) 平均数
median(x) 中位数
sd(x) 标准差
var(x) 方差
quantile(x,probs) 求中位数 eg. quantile(x,c(.3,.84)) #求x的30%和84%分位点
scale(x,center=TRUE,scale=TRUE) 为数据对象x按列进行中心化(center=TRUE)或标准化(center=TRUE,scale=TRUE)
-R中常用字符处理函数
nchar(x) 计算x中的字符数量
substr(x,start,stop) 提取或者替换一个字符向量的子串
grep(pattern, x , ignore.case = FALSE , fixed=FALSE) 在x中搜索某种模式。若fixed=FALSE,则pattern为一个正则表达式,若fixed=TRUE,则pattern为一个文本字符串。返回值为匹配的下标
sub(pattern , replacement , x , ignore.case=FALSE , fixed=FALSE) 在x中搜索pattern,并以文本replacement将其替换,若fixed=FALSE,则pattern为一个正则表达式。若fixed=TRUE,则pattern为一个文本字符串
eg. sub("\\s",".","Hello There") 返回值为Hello.There #注意,"\s" 是一个用来查找空白的正则表达式,使用"\\s"而不是"\"的原因是,后者是R中的转义字符
strsplit(x,split,fixed=FALSE) 在split处分割字符向量x中的元素,若fixed=FALSE,则pattern为一个正则表达式。若fixed=TRUE,则pattern为一个文本字符串
eg. y <- strsplit("abc",'') 将返回一个含有一个成分、三个元素的列表,包含的内容为"a","b","c" ##对付这样的list,取其元素最简单的办法 unlist(y)[2]
paste("x1","x2",...,sep='')
eg. paste("Today is",date()) 返回值为“Today is Thu Jun 25 14:17:32 2011”
toupper(x) 大写转换
tolower(x) 小写转换
- R其他函数
length(x) 对象x的长度
seq(from,to,by) 生成一个序列
rep(x,n) 将x重复n次
cut(x,n) 将连续变量x分割为有着n个水平的因子,使用选项ordered_result=TRUE以创建一个有序型因子
pretty(x,n) 创建美观的分割点。通过选取n+1个等艰巨的取整值,将一个连续型变量x分割为n个区间,绘图中常用。
cat(...,file="myfile",append=FALSE) 连接...中的对象,并将其输出到屏幕上或文件中(如果声明了一个的话) eg. firstname <- c("Jane") cat("Hello",firstname,"\n")