R语言中的一些常用小代码

内存整理

memory.limit()查看虚拟内存分配情况
memory.limit(102400)#分配内存
memory.size()查看现在的workspace的内存使用情况
gc()清理内存

加权平均weighted.mean(x,w,…)

  • x:是需要加权的对象
  • w:是一个数值向量,长度与x一致
> weighted.mean(c(1,2,3),w=c(-1,1,0.5))
# [1] 5

反转函数rev(x)

> rev(c(1,2,3))
[1] 3 2 1
> rev(list(a=c(1,2,3),b='a'))
# $b
# [1] "a"

# $a
# [1] 1 2 3

关闭warning的提示

options(warn =-1)

用R输出全部的排列情况

combn(n,m)

数据中心化及标准化:

#数据中心化
scale(data,center=T,scale=F) 
#数据标准化:  
scale(data,center=T,scale=T) 或默认参数scale(data)

R语言中的字母序列

> letters[1:10]
# [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
> LETTERS[1:10]
 # [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J"

给数据排序,得到次序索引

import numpy as np
a=np.array([5,9,8,0,2,4])
ind=np.argsort(a)
a[ind]
#array([0, 2, 4, 5, 8, 9])
sorted(a)
[0, 2, 4, 5, 8, 9]
np.sort(a)#没有改变a
#array([0, 2, 4, 5, 8, 9])
a.sort()#改变了a
a
#array([0, 2, 4, 5, 8, 9])

按行读取数据,常用于文本数据

data<-readLines(filename,encoding="XXX")

读取xlsx文件

需要加载xlsx包,还需要安装java环境。
read.xlsx2比read.xlsx读取速度要快很多,不过在小数集下没啥区别。
使用如下:

编码问题:在excel保存文件的时候选择UTF-8格式,因此,在R中读取的时候,指定编码类型为UTF-8
表格索引问题:读取指定表的内容,可以通过下标索引,也可以通过表的名称。即 sheetIndex 或者 sheetName ,前者参数为纯数字,后者是字符串。
写入问题:在利用== write.xlsx==进行写入时,append=T表示在工作簿中追加一个新的sheet.

正确的一个实例如下:

library(rJava)
library(xlsx)
filename="C:/Users/zoujiahuibin/Desktop/work.xlsx"
data=read.xlsx(filename,sheetIndex=1,startRow=1,endRow=3,colIndex=c(1,2,3),encoding = "UTF-8")
write.xlsx(data, filename2, sheetName="Sheet1", col.names=T, row.names=F, append=F, showNA=F, password=NULL)

举例说明

**问题:**将一个xlsx表中第一行添加一个条目,并写入再另一个xlsx文件中
原始数据:
在这里插入图片描述

具体代码

library(rJava)
library(xlsx)
filename="C:/Users/zoujiahuibin/Desktop/zou/hui.xlsx"
filename2="C:/Users/zoujiahuibin/Desktop/zou/jia.xlsx"
data=read.xlsx(filename,sheetIndex=1,startRow=1,endRow=3,colIndex=c(1,2,3),encoding = "UTF-8")
addline=data.frame(数量='5克',单价='102元/克',总价=510)
data2=rbind(addline,data)
write.xlsx(data2, filename2, sheetName="Sheet1", col.names=T, row.names=F, append=F, showNA=F, password=NULL)

结果如下

在指定位置创建了一个新的文件jia.xlsx
在这里插入图片描述

查看一个package的简介

library(help="XX")

实例:

library(help="ggplot2")

在这里插入图片描述

查看R包中的数据集

data() #列出已载入的包中的所有数据集。
data(package = .packages(all.available = TRUE)) #列出已安装的包中的所有数据集。

data(package="XXX")#查看 XXX包中的数据集
data(lalonde, package="XXX")#从XXX包中加载数据lalonde

help("lalonde") #查看 lalonde 数据集的信息文档
?lalonde #查看 lalonde 数据集的信息文档

这里大神列出了datasets中的数据集:
https://blog.csdn.net/yjz_sdau/article/details/51510294

计算代码运行时间

###计算运行时间
begintime=Sys.time()
expr#代码块
endtime=Sys.time()
difftime(endtime,begintime,units = "secs") 
#units可以是“auto, “secs”, “mins”, “hours”, “days”, “weeks”其中的一个

或者

system.time(expr)

查看某一object中的属性

attributes(obj)#查看对象obj得属性列表

R中的三目运算符

#R语言中的三目运算符

ifelse(1>0,1,2)

R中图片的输出

#在pdf中作图
pdf(filename.pdf)
print(figure)#或者plot()
dev.off()
#输出图片为jpg
jpeg(filename=fname,height=th,width=tw)
par(font.lab=2,font.axis=2,cex.lab=1.5,cex.axis=1.5)
y=y+1
plot(x,y,type="b",xlab="时间",ylab="得分",main=tmpname)
dev.off()

ggplot()作图可以利用专用的ggsave()函数

ggsave(filename =XXX.pdf,plot = figure,width=5,height=4)

在R语言中执行ternimal命令

system(“XXXX")

时间序列中的时间格式设置

可参考:
https://blog.csdn.net/glodon_mr_chen/article/details/84380373

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值