京公网安备 11010802034615号
经营许可证编号:京B2-20210330
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
数据分析师认证考试全面升级后,除了考试场次和报名时间,小伙伴们最关心的就是报名费了,报 ...
2025-12-23CDA中国官网是全国统一的数据分析师认证报名网站,由认证考试委员会与持证人会员、企业会员以及行业知名第三方机构共同合作,致 ...
2025-12-23在Power BI数据可视化分析中,矩阵是多维度数据汇总的核心工具,而“动态计算平均值”则是矩阵分析的高频需求——无论是按类别计 ...
2025-12-23在SQL数据分析场景中,“日期转期间”是高频核心需求——无论是按日、周、月、季度还是年度统计数据,都需要将原始的日期/时间字 ...
2025-12-23在数据驱动决策的浪潮中,CDA(Certified Data Analyst)数据分析师的核心价值,早已超越“整理数据、输出报表”的基础层面,转 ...
2025-12-23在使用Excel数据透视表进行数据分析时,我们常需要在透视表旁添加备注列,用于标注数据背景、异常说明、业务解读等关键信息。但 ...
2025-12-22在MySQL数据库的性能优化体系中,索引是提升查询效率的“核心武器”——一个合理的索引能将百万级数据的查询耗时从秒级压缩至毫 ...
2025-12-22在数据量爆炸式增长的数字化时代,企业数据呈现“来源杂、格式多、价值不均”的特点,不少CDA(Certified Data Analyst)数据分 ...
2025-12-22在企业数据化运营体系中,同比、环比分析是洞察业务趋势、评估运营效果的核心手段。同比(与上年同期对比)可消除季节性波动影响 ...
2025-12-19在数字化时代,用户已成为企业竞争的核心资产,而“理解用户”则是激活这一资产的关键。用户行为分析系统(User Behavior Analys ...
2025-12-19在数字化转型的深水区,企业对数据价值的挖掘不再局限于零散的分析项目,而是转向“体系化运营”——数据治理体系作为保障数据全 ...
2025-12-19在数据科学的工具箱中,析因分析(Factor Analysis, FA)、聚类分析(Clustering Analysis)与主成分分析(Principal Component ...
2025-12-18自2017年《Attention Is All You Need》一文问世以来,Transformer模型凭借自注意力机制的强大建模能力,在NLP、CV、语音等领域 ...
2025-12-18在CDA(Certified Data Analyst)数据分析师的时间序列分析工作中,常面临这样的困惑:某电商平台月度销售额增长20%,但增长是来 ...
2025-12-18在机器学习实践中,“超小数据集”(通常指样本量从几十到几百,远小于模型参数规模)是绕不开的场景——医疗领域的罕见病数据、 ...
2025-12-17数据仓库作为企业决策分析的“数据中枢”,其价值完全依赖于数据质量——若输入的是缺失、重复、不一致的“脏数据”,后续的建模 ...
2025-12-17在CDA(Certified Data Analyst)数据分析师的日常工作中,“随时间变化的数据”无处不在——零售企业的每日销售额、互联网平台 ...
2025-12-17在休闲游戏的运营体系中,次日留存率是当之无愧的“生死线”——它不仅是衡量产品核心吸引力的首个关键指标,更直接决定了后续LT ...
2025-12-16在数字化转型浪潮中,“以用户为中心”已成为企业的核心经营理念,而用户画像则是企业洞察用户、精准决策的“核心工具”。然而, ...
2025-12-16在零售行业从“流量争夺”转向“价值深耕”的演进中,塔吉特百货(Target)以两场标志性实践树立了行业标杆——2000年后的孕妇精 ...
2025-12-15