R 复习 菜鸟教程

R语言老师说R好就业,学就完了

基础语法

cat()可以拼接函数:

> cat(1, "加", 1, "等于", 2, '\n')
11 等于 2

sink():重定向

sink("r_test.txt", split=TRUE)  # 控制台同样输出
for (i in 1:5) print(i)
sink()   # 取消输出到文件sink("r_test.txt", append=TRUE) # 控制台不输出,追加写入文件
print("RUNOOB")
# 当前工作目录
print(getwd())# 设置当前工作目录
setwd("/Users/runoob/runoob-test2")# 查看当前工作目录
print(getwd())

基础运算

%%	整除求余
%/%	整除
%in%	用于判断元素是否在向量里,返回布尔值,有的话返回 TRUE,没有返回 FALSE%*%	    用于矩阵与它转置的矩阵相乘。# 1 到 10 的向量
v <- 1:10
print(v) # 判断数字是否在向量 v 中
v1 <- 3
v2 <- 15
print(v1 %in% v) 
print(v2 %in% v) # 矩阵与它转置的矩阵相乘
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

数据类型

变量按对象类型来分是以下 6 种:
向量(vector)
列表(list)
矩阵(matrix)
数组(array)
因子(factor)
数据框(data.frame)

seq(data,from,to,len):等差数列
rep():重复

NA:占位符

> toupper("Runoob") # 转换为大写
[1] "RUNOOB"
> tolower("Runoob") # 转换为小写
[1] "runoob"
> nchar("中文", type="bytes") # 统计字节长度
[1] 4
> nchar("中文", type="char") # 总计字符数量
[1] 2
> substr("123456789", 1, 5) # 截取字符串,从 1 到 5
[1] "12345"
> substring("1234567890", 5) # 截取字符串,从 5 到结束
[1] "567890"
> as.numeric("12") # 将字符串转换为数字
[1] 12
> as.character(12.34) # 将数字转换为字符串
[1] "12.34"
> strsplit("2019;10;1", ";") # 分隔符拆分字符串
[[1]]
[1] "2019" "10"   "1"
> gsub("/", "-", "2019/10/1") # 替换字符串
[1] "2019-10-1"
> (A = matrix(c(1, 3, 2, 4), 2, 2))[,1] [,2]
[1,]    1    2
[2,]    3    4
> apply(A, 1, sum) # 第二个参数为 1 按行操作,用 sum() 函数
[1] 3 7
> apply(A, 2, sum) # 第二个参数为 2 按列操作
[1] 4 6

判断语句

R 语言提供了以下类型的判断语句:
if 语句
if…else 语句
switch 语句

switch 没有默认参数可用。

循环

R 语言提供的循环类型有:
repeat 循环 用 break
测试+ while 循环
for 循环 +测试

R 语言提供的循环控制语句有:
break 语句
Next 语句 用于 switch

函数

function_name <- function(arg_1, arg_2, ...) {# 函数体# 执行的代码块return(output)
}

str():显示对象的结构和内容摘要

字符串

paste(..., sep = " ", collapse = NULL):合并字符串a <- "Google"
b <- 'Runoob'
c <- "Taobao"print(paste(a,b,c))print(paste(a,b,c, sep = "-"))print(paste(letters[1:6],1:6, sep = "", collapse = "="))
paste(letters[1:6],1:6, collapse = ".")输出结果:
[1] "Google Runoob Taobao"
[1] "Google-Runoob-Taobao"
[1] "a1=b2=c3=d4=e5=f6"
[1] "a 1.b 2.c 3.d 4.e 5.f 6"

列表

list_data <- list("runoob", "google", c(11,22,33), 123, 51.23, 119.1)
print(list_data)输出结果:
[[1]]
[1] "runoob"[[2]]
[1] "google"[[3]]
[1] 11 22 33[[4]]
[1] 123[[5]]
[1] 51.23[[6]]
[1] 119.1
# 列表包含向量、矩阵、列表
list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),list("runoob",12.3))# 给列表元素设置名字
names(list_data) <- c("Sites", "Numbers", "Lists")# 显示列表
print(list_data)输出结果:
$Sites
[1] "Google" "Runoob" "Taobao"$Numbers[,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6$Lists
$Lists[[1]]
[1] "runoob"$Lists[[2]]
[1] 12.3
# 列表包含向量、矩阵、列表
list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),list("runoob",12.3))# 给列表元素设置名字
names(list_data) <- c("Sites", "Numbers", "Lists")# 添加元素
list_data[4] <- "新元素"
print(list_data[4])# 删除元素
list_data[4] <- NULL# 删除后输出为 NULL
print(list_data[4])# 更新元素
list_data[3] <- "我替换来第三个元素"
print(list_data[3])
# 创建两个列表
list1 <- list(1,2,3)
list2 <- list("Google","Runoob","Taobao")# 合并列表
merged.list <- c(list1,list2)# 显示合并后的列表
print(merged.list)
# 创建列表
list1 <- list(1:5)
print(list1)list2 <-list(10:14)
print(list2)# 转换为向量
v1 <- unlist(list1)
v2 <- unlist(list2)print(v1)
print(v2)# 两个向量相加
result <- v1+v2
print(result)

矩阵

matrix(data = , nrow = , ncol = , byrow = FALSE,dimnames = NULL)data 向量,矩阵的数据
nrow 行数
ncol 列数
byrow 逻辑值,为 FALSE 按列排列,为 TRUE 按行排列
dimname 设置行和列的名称# byrow 为 TRUE 元素按行排列
M <- matrix(c(3:14), nrow = 4, byrow = TRUE)
print(M)# Ebyrow 为 FALSE 元素按列排列
N <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(N)# 定义行和列的名称
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)

数组

array(data = NA, dim = length(data), dimnames = NULL)data - 指定数组的数据源,可以是一个向量、矩阵或列表。
dim - 指定数组的维度,可以是一个整数向量或一个表示维度的元组,默认是一维数组。例如,dim = c(2, 3, 4) 表示创建一个 2x3x4 的三维数组。
dimnames - 可选参数,用于指定数组每个维度的名称,可以是一个包含维度名称的列表。
apply(X, MARGIN, FUN, ...)X:要应用函数的数组或矩阵。
MARGIN:指定应用函数的维度,可以是1表示行,2表示列,或者c(1, 2)表示同时应用于行和列。
FUN:要应用的函数,可以是内置函数(如mean、sum等)或自定义函数。# 创建两个不同长度的向量
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)# 创建数组
new.array <- array(c(vector1,vector2),dim = c(3,3,2))
print(new.array)# 计算数组中所有矩阵第一行的数字之和
result <- apply(new.array, c(1), sum)
print(result)

数据重塑

cast():函数用于对合并对数据框进行还原
dcast():返回数据框
acast():返回一个向量/矩阵/数组。

.libPaths():查看 R 包的安装目录

library():查看已安装的包

install.packages(“要安装的包名”)

读取文件

data <- read.csv("sites.csv", encoding="UTF-8")# likes 为 222 的数据
retval <- subset(data, likes == 222)# 写入新的文件
write.csv(retval,"runoob.csv")
newdata <- read.csv("runoob.csv")
print(newdata)

summary():获取关系模型的概要

predict(object, newdata)object - lm() 函数创建的公式。
newdata - 要预测的值。

实例

通过自定义一个函数来查找向量中重复次数最多的元素# 创建向量
getmode <- function(v) {uniqv <- unique(v)uniqv[which.max(tabulate(match(v, uniqv)))]
}# 数字向量
v <- c(2,1,2,3,1,2,3,4,1,5,5,3,2,3)# 计算结果
result <- getmode(v)
print(result)# 字符串向量
charv <- c("google","runoob","taobao","runoob","runoob")# 计算结果
result <- getmode(charv)
print(result)
# 创建向量
x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
# 计算平均值
result.mean <-  mean(x,trim = 0.3)//去掉首尾各 3 个元素
result.mean2 <- mean(c(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17))
print(result.mean)
print(result.mean2)

总结

我知道的和我觉得不是重点的我就没写,建议搭配前面两篇文章和课本一块使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/131900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯官网填空题(方格计数)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff0c;在二维平面上有无数个 11 的小方格。 我们以某个小方格的一个顶点为圆心画一个半径为 50000 的圆。 你能计算出这个圆里有多少个完整的小方…

【星海出品】VUE(五)

表单 表单输入绑定 只需要v-model声明一下这个变量就可以。 还可以选择不同的类型&#xff0c;例如 type"checkbox“ v-model 也提供了 lazy、number、.trim 功能&#xff0c;只需要在v-model后面加入.lazy 例如&#xff1a;v-model.lazy”message“ <template><…

Azure 机器学习 - 设置 AutoML 训练时序预测模型

目录 一、环境准备二、训练和验证数据三、配置试验支持的模型配置设置特征化步骤自定义特征化 四、可选配置频率和目标数据聚合启用深度学习目标滚动窗口聚合短时序处理非稳定时序检测和处理 五、运行试验六、用最佳模型进行预测用滚动预测评估模型精度预测未来 七、大规模预测…

Flink源码解析八之任务调度和负载均衡

源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…

css主题切换

html <!DOCTYPE html> <html> <head><title>主题切换示例</title> </head> <body><div class"app"><button id"themeButton">切换主题</button><div class"content"><h1…

已完结,给小白的《50讲Python自动化办公》

大家好&#xff0c;这里是程序员晚枫&#xff0c;小红薯也叫这个名。 写在前面 上个周末去成都参加了第8届中国开源年会&#xff0c;认识了很多行业前辈和优秀的同龄人。 我发现在工作之外还能有一番事业的人&#xff0c;都有一个让我羡慕的共同点&#xff1a;有一个拿得出手…

【Go】-调用企微机器人

没有什么好讲的&#xff0c;直接贴代码&#xff0c;消息格式我用的markdown。 sendMsg.go&#xff1a; package mainimport ("flag""fmt""github.com/goccy/go-json""github.com/tidwall/gjson""io/ioutil""net/http…

C++笔记之表驱动法

C笔记之表驱动法 code review! 文章目录 C笔记之表驱动法0.数组小技巧1.std::map实现2.结构体实现3.数组和结构体结合实现表驱动法-存储函数指针4.表驱动法概念-ChatGPT5. 直接访问表&#xff08;Direct Access Table&#xff09;的示例6. 索引访问表&#xff08;Indexed Acc…

Yolov8目标识别与实例分割——算法原理详细解析

前言 YOLO是一种基于图像全局信息进行预测并且它是一种端到端的目标检测系统&#xff0c;最初的YOLO模型由Joseph Redmon和Ali Farhadi于2015年提出&#xff0c;并随后进行了多次改进和迭代&#xff0c;产生了一系列不同版本的YOLO模型&#xff0c;如YOLOv2、YOLOv3、YOLOv4&a…

项目上线前发现严重Bug怎么办?

今天分享一个面试问题&#xff0c;现在有一个面试场景&#xff1a; 项目计划明天发布&#xff0c;但是在今天你作为测试人员发现了一个严重的bug&#xff0c;市场相关人员又在催发布的事情&#xff0c;这个时候你应该怎么办&#xff1f; 这是测试工程师不管是在面试&#xff0…

JVM常用命令

jps —查看pid jstat -gcutil 4364 1000 2000 —查看堆内存占用百分比&#xff0c;每秒打印1次&#xff0c;总共打印2000次 S0&#xff1a;幸存1区当前使用比例 S1&#xff1a;幸存2区当前使用比例 E&#xff1a;伊甸园区使用比例 O&#xff1a;老年代使用比例 M&#xff1a;元…

基于计算机视觉的身份证识别系统 计算机竞赛

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-sen…

初识jQuery

文章目录 一、jQuery介绍二、Jquery优势三、jQuery版本四、jQuery对象jQuery的引用js代码与jQuery代码对比标签对象与jQuery对象 五、jQuery查找标签1.基本选择器2.组合选择器3.层次选择器4.属性选择器5.基本筛选器6.表单筛选器 六、筛选器方法七、操作标签1.class操作2.文本操…

048基于web+springboot的校园资料分享平台

欢迎大家关注&#xff0c;一起好好学习&#xff0c;天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本校园资料分享平台有管理员和用户两个角色。管理员功能有个人中心&#xff0c;学生管理&#xff0c;资料分享管理&#xff0c;资源分…

软考高项-挣值管理-TCPI

术语公式实例计算工具和技术-TCPI&#xff08;完工尚需绩效指数&#xff09;是一种为了实现特定的管理目标&#xff0c;剩余资源的使用必须达到的成本绩效指标&#xff0c;完成剩余工作所需成本与剩余预算之比。BAC10000;AC4500;EV3000;非典型的EAC11500;典型EAC14999TCPI&…

FastBond2阶段2——基于ESP32C3开发的简易IO调试设备

1. 项目介绍 之前买了许多国产单片机esp32c3一直在吃灰&#xff0c;没有发挥它的真实价值。非常感谢硬禾组织的Fastbond2活动&#xff0c;刚好两者经过微妙的碰撞。恰可以用于FastBond2活动主题4 - 测量仪器&#xff08;单片机开发测试领域&#xff09;&#xff0c;或者用于国…

VR全景在医院的应用:缓和医患矛盾、提升医院形象

医患关系一直以来都是较为激烈的&#xff0c;包括制度的不完善、医疗资源紧张等问题也时有存在&#xff0c;为了缓解医患矛盾&#xff0c;不仅要提升患者以及家属对于医院的认知&#xff0c;还需要完善医疗制度&#xff0c;提高医疗资源的配置效率&#xff0c;提高服务质量。 因…

Linux学习笔记之三(vim编辑器)

目录 1、vim的四种工作模式2、正常模式下的操作指令2.1、进入编辑模式2.2、进入命令行模式2.3、进入视觉模式2.4、光标跳转2.5、复制、粘贴、删除2.6、重复、撤回操作 3、命令行模式下的操作指令 1、vim的四种工作模式 vim的四种工作模式分别是编辑模式(insert mode)、命令行模…

PCL 计算USC(UniqueShapeContext)特征描述子

目录 一、概述二、代码示例一、概述 USC(UniqueShapeContext)特征描述子是一个用于在点云数据中识别和提取独特形状的算法。这个算法的主要目的是在复杂的点云数据中找到重复出现的形状,并且只保留一个。它基于一个独特的形状描述符,通过计算点云中每个点的形状上下文,生成一…

多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉 计算机竞赛

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习多目标跟踪 …