从R语言入门的直播课程,到现在为止。有一个月的时间,基本上完成之前预设该课程的目标:R语言小白的免费入门课程。并对课程的上部分内容进行了总结:R语言入门课程。下面我再将直播课程的下半部分内容在这里汇总如下。
可视化
- 参数设置
画布大小设置:par(mar=c(1,2,3,4)
字体或标签大小:cex参数
- boxplot作图的三种方式
boxplot(df1$genes~df1$group)boxplot(genes~group,data=df1)with(df1, boxplot(genes~group))
- 图片保存
# PDF:pdf(file="figure.pdf")...dev.off()#TIFF: tiff(file="figure.tiff")...dev.off()#PNG: png(file="figure.png")...dev.off()
DataFrame操作
- aggregate: 按照dataframe中的分组变量(一般是factor),对数据进行操作。比如求均值:aggregate(genes~group02,data=df2,mean)
- apply: 对数据框的每行或每列进行函数操作。
- 取dataframe中每行的均值:apply(df4, 1, mean)
- 取dataframe中每列的标准差:apply(df4,2, sd)
- 变量属性转换
- 转换为factor变量:
df2$group02 = factor(df2$group02, levels = c(0, 1), labels = c('normal', 'tumor'))
换为numeric变量:
df4$a4=as.numeric(df4$a4)
但当有character属性的变量存在时,需要这样转换成numeric数据:as.numeric(as.character(df4$a4))
- NA值
- 判断数据是否存在NA值:anyNA(df3)
- 删除NA值所在的行:na.omit(df3)
- 多个数据库操作
- 数据框按行合并:rbind()
- 数据框按列合并:cbind()
- 自定义合并: merge()
R语言控制流
- IF
if通过判断变量,确定是否要执行代码块中的命令。主要涉及到以下比较表达式:== 等于; > 大于; < 小于; != 不等于。一般用法:
#用法1if(a!=0){print("ok")}#用法2if(a==0)print("ok")#用法3if(a!=0) print("ok") else print("no")
- FOR
for循环,对变量进行遍历。
#遍历a1for(i in a1){print(i)}#或者这样for(i in 1:length(a1)){print(round(a1[i],0))}#打印9*9乘法表for(i in 1:9){for(j in 1:i){ cat(i,"x",j,"=",i*j) cat("\t") } cat("\n")}
9x9 乘法表
- WHILE
while循环,会一直执行代码块中的命令,直到条件不为真。
while (condition) {do sth}
一个猜字小游戏:产生1,100内的随机数,利用键盘输入进行猜字。
a2=sample(1:100,1)#从键盘数据变量b2=0while (T) { b2 = scan()if (a2 > b2) { message(paste0(paste0("你输入的", b2), "太小了")) }if (a2 < b2) {print(paste0(paste0("你输入的", b2), "太大了")) }if (a2 == b2) {print("你答对了")break }}
结合上一篇推文:R语言入门课程。把直播课的R语言入门课程进行了总结,有需要详细视频教程的小伙伴,可以去粉丝群的共享文件夹中,获取直播的录屏。编写代码能力的提升,是要日复一日地进行练习,希望这一系列的R入门教程,可以顺利帮助你入门R语言。