R语言编程基础篇(1)
1. 建立多维数组
array(1:36, dim = c(2, 2, 3, 3))
2. 使用list.files函数遍历文件夹中的文件
比如列出当前工作目录下的所有文件
list.files(getwd())
[1] "1.pdf" "10plots.pdf"
[3] "140408696.txt" "1plots.pdf"
[5] "2plots.pdf" "3plots.pdf"
还可以设置正则表达式来过滤文件
列出当前工作目录下所有的R语言源代码文件
list.files(getwd(),pattern = '*.[R|r]$')
[1] "Ask.R" "gg.R"
3. 用sciplot包的画boxplot图
#加载数据
library(MASS)
cab<-data.frame(cabbages)
cab[1,]
library(sciplot)
bargraph.CI(Cult, HeadWt, group =Date , data =cab,
xlab = NA, ylab = NA, cex.lab = 1.5, x.leg = 1,
col = "black", angle = 45, cex.names = 1.25,
density = c(0,20,100), legend = TRUE,ylim=c(0,5))
box()
bargraph.CI(Date,HeadWt, group =Cult , data =cab,
xlab = NA, ylab = NA, cex.lab = 1.5, x.leg = 1,
col = "black", angle = 45, cex.names = 1.25,
density = c(0,20), legend = TRUE,ylim=c(0,5))
box()
在这个boxplot中,不用自己计算均值和误差,也不用自己调整数据结构,不用转化为matrix,很方便。
4. 多系列图
x<-seq(from = 1,to = 9,by =2)
y<-seq(from = 2,to = 10,by= 2)
barplot(rbind(x,y),beside=T,col=heat.colors(2))
5. 应该注意避免使用的变量名
R语言中预定义了大量函数,有些函数名相当简单,比如c()函数,根据本人的实践经验,应该避免使用过于简单的变量名,以免与R语言已有名称冲突,而出现意想不到的错误。自己取变量名字是,最好能加上自己的一些特征,比如公司缩写,比如本人公司首字母缩写为MS,则本人使用的变量名都以MS开头,然后接下划线,比如MS_Alarm,MS_Books等等。
以下是尽量应该避免使用的变量名:
单个字符:a,b,c,d,…,x,y,z,A,B,…,X,Y,Z,
已经被R语言使用的名字:data,names,dim,seq,…
另外,命名新变量时,应该先检查一下变量名是否已经存在。
可以使用get()函数查询变量名,看是否有返回值。
6. Windows环境下,R语言调用C语言库
1.安装Rtools,http://www.murdoch-sutherland.com/Rtools/Rtools.exe这个在写R包时要用,当然这里不会提到。
2.配置环境变量,“我的电脑”–>“属性”–>“高级”–>“环境变量”–>“系统变量”–>PATH,在后面添加:D:\Rtools\bin; D:\Rtools\perl\bin;D:\Rtools\MinGW\bin;D:\R-2.8.1\bin(前三个取决于Rtools的安装位置,最后一个取决于R安装的位置)
3.编写C代码(命名为fac3.c),下面程序得到i*j*k(1<=i,j, k<=n)的和,注意:参数必须用指针表示(对应R中的向量),且编写的C函数不能有显式返回值,即函数返回要声明为void;(参见http://www.wentrue.net/blog/?p=72,该文是在linux下的。)
voidfac3(double *n, double *m){
*m=0;
int i,j,k;
for(i=1;i<=*n;i++){
for(j=1;j<=*n;j++){
for(k=1;k<=*n;k++){
*m=*m+i*j*k;
}
}
}
}
4.编译C,在DOS中(fac3.c所在的文件夹下)输入RCMD SHLIB fac3.c
即可得到.dll文件
5.R中调用,并与R做循环的速度进行比较
dyn.load("fac3.dll")
system.time(out<-.C("fac3",a=1000,b=1))#第一个参数对应C中的函数名
我的老机上运行时间:
user system elapsed
6.67 0.00 6.81
再看看R中的速度
n= 100
m= 0
system.time(for (iin1:n) {
for (jin1:n) {
for (kin1:n) {
m = m + i * j * k
}
}
})
user system elapsed
7.34 0.00 7.44
通过比较可以发现,调用的C做了1000^3次循环比R中做了100^3循环的速度还快!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03