R语言的基础命令及实例操作
> T & F
[1] FALSE
> T & T
[1] TRUE
> T | F
[1] TRUE
> F | F
[1] FALSE
> a <- c(T,F,T)
> b <- c(F,F,T)
> a & b
[1] FALSE FALSE TRUE
> a | b
[1] TRUE FALSE TRUE
在 R 中,大小写是敏感的,也就是说 A 和 a 是不同的对象。
- 对象命名规则:
- 对象名不能以数字开头,但数字可以出现在对象名的中间或结尾。例如,a1 是合法的,但 1a 不是。
- 在命名对象时,建议使用点(.)作为分隔符,这样可以提高可读性。例如:anova.result1。
- 示例:创建一个向量:
- 你可以通过如下命令创建一个向量:
a <- c(10, 15, 21, 18)
这个向量 a 包含了 4 个元素,数据类型为数值型(numeric),长度为 4。
- 你可以通过如下命令创建一个向量:
- 命名注意事项:
- 在命名对象时,要避免与 R 中的保留名称(关键字)冲突。以下是一些保留名称示例:
- NA:缺失值
- NaN:非数值
- pi:圆周率常数
- LETTERS:包含所有大写字母的字符向量
- letters:包含所有小写字母的字符向量
- month.abb:月份的缩写
- month.name:月份的全名
- 在命名对象时,要避免与 R 中的保留名称(关键字)冲突。以下是一些保留名称示例:
避免将对象命名为这些保留名称,以免与 R 语言的内置功能冲突。
在 R 中,有几种基本的数据类型:
- 数值型(Numeric):
- 用于存储数字,包括整数和浮动点数。
- 示例:100, 0, -4.335
- 字符型(Character):
- 用于存储文本数据,通常用双引号或单引号括起来。
- 示例:"China"
- 逻辑型(Logical):
- 用于存储逻辑值,即 TRUE 或 FALSE。
- 示例:TRUE, FALSE
- 因子型(Factor):
- 用于表示分类数据,也就是不同类别或水平的变量。因子型变量可以用来表示类别,如性别、地区等。
- 示例:factor(c("Male", "Female", "Female", "Male"))
- 可以用来输入患者的信息
- 复数型(Complex):
- 用于存储复数数据,形式为 a + bi。
- 示例:2 + 3i
- 向量(Vector):
- 向量是同一类型元素的集合。向量是R中最基本的数据结构,可以包含数值、字符、逻辑值等。
- 示例:
v <- c(1, 2, 3, 4)
- 数组(Array):
- 数组是多维的数据表,可以是任意维度(维数 k)。数组的元素必须是相同的数据类型。
- 示例:创建一个二维数组
arr <- array(1:6, dim = c(2, 3))
- 矩阵(Matrix):
- 矩阵是数组的一个特例,具有 2 个维度(即行和列)。矩阵中的元素必须是同一数据类型。
- 示例:
mat <- matrix(1:6, nrow = 2, ncol = 3)
- 列表(List):
- 列表是一种可以包含不同类型元素的数据结构,可以包含向量、矩阵、数据框,甚至其他列表。与向量不同,列表中的元素可以是不同类型。
- 示例:
lst <- list(a = 1, b = "text", c = TRUE)
- 数据框(DataFrame):
- 数据框是由一个或多个向量或因子组成的二维结构,类似于数据库中的表格。数据框中的每列可以是不同的数据类型,但每列必须是等长的。
- 示例:
df <- data.frame(Name = c("Alice", "Bob"), Age = c(25, 30))
索引:
> count = c("a","b","c")
> count
[1] "a" "b" "c"
> count[1]
[1] "a"
> count[2]
[1] "b"
转置:
> matrix.x <- matrix(1:12,nrow=3,byrow=T)
> t(matrix.x)
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
>
取行和列:
> df <- data.frame(Name = c("Alice", "Bob"), Age = c(25, 30))
> df
Name Age
1 Alice 25
2 Bob 30
> df[2,]
Name Age
2 Bob 30
> df[,2]
[1] 25 30
> df[2,1]
[1] "Bob"
> df$Name
[1] "Alice" "Bob"
对象类型判断:
> class(count)
[1] "character"
> class(df)
[1] "data.frame"
> class(x)
[1] "integer"
对象类型转换:
> gender = c('male','female','male')
> gender
[1] "male" "female" "male"
> class(gender)
[1] "character"
> as.factor(gender)
[1] male female male
Levels: female male
外部数据读取:
1. 读取 .txt 和 .csv 文件
read.table() 函数:
- read.table() 是 R 中最常用的函数之一,用于读取由空格或制表符(Tab)分隔的文本文件。它的默认分隔符是 空格 或 制表符(Tab),但可以通过参数 sep 来指定其他分隔符。
示例:
data <- read.table("data.txt", header = TRUE, sep = "\t")- header = TRUE:表示文件的第一行是列名。
- sep = "\t":表示数据之间是由制表符(Tab)分隔的。
读取的结果会存储为数据框(data frame),data 变量就包含了从文件中读取的数据。
read.csv() 函数:
- read.csv() 是 read.table() 的一种专门用于读取 CSV(逗号分隔值)文件的简化版本。它的默认分隔符是 逗号(,)。
示例:
data <- read.csv("data.csv", header = TRUE)- header = TRUE:表示文件的第一行是列名。
读取的结果会同样存储为数据框。
- header = TRUE:表示文件的第一行是列名。
2. 其他文件格式的读取
R 也可以通过一些专门的程序包来读取其他格式的数据文件。例如:
- Excel 文件:可以使用 readxl 或 openxlsx 包来读取 .xlsx 或 .xls 文件。
library(readxl)
data <- read_excel("data.xlsx") - SAS 文件:可以使用 haven 包来读取 .sas7bdat 文件。
library(haven)
data <- read_sas("data.sas7bdat") - DBF 文件:可以使用 foreign 包来读取 DBF 格式文件。
library(foreign)
data <- read.dbf("data.dbf") - Matlab 文件:使用 R.matlab 包来读取 .mat 文件。
library(R.matlab)
data <- readMat("data.mat") - SPSS 文件:使用 haven 包读取 .sav 文件。
library(haven)
data <- read_spss("data.sav") - Minitab 文件:可以使用 foreign 包来读取 .mtw 文件。
library(foreign)
data <- read.minitab("data.mtw")
> data <- read.table("C:/Users/admin/Desktop/BMI.txt", header = TRUE, sep = "\t", stringsAsFactors = FALSE)
> data
height weight
1 1.75 60
2 1.80 72
3 1.65 67
4 1.90 50
5 1.74 95
6 1.91 72
> class(data)
[1] "data.frame"
查看当前的工作路径和修改工作路径:
> getwd()
[1] "C:/Users/admin/Documents"
> setwd("C:/Users/admin/Desktop")
两个点代表返回上级目录,一个点代表当前目录:
> setwd("../")
> getwd()
[1] "C:/Users/admin"
实例1:
实例2:
研究对象:肺癌,乳腺癌,膀胱癌,肝癌
研究方法:转录组测序,找到共同的差异基因
已有数据:四种肿瘤各自的差异基因
具体步骤:
1.读入数据-read.table()
2.取得交集-intersect()
3.频数统计,找到更多热点基因-table()
4.韦恩图可视化-venn.diagram()
Label.col和cat.col我没写可以自己加
相关文章:
R语言的基础命令及实例操作
> T & F [1] FALSE > T & T [1] TRUE > T | F [1] TRUE > F | F [1] FALSE > a <- c(T,F,T) > b <- c(F,F,T) > a & b [1] FALSE FALSE TRUE > a | b [1] TRUE FALSE TRUE 在 R 中,大小写是敏感的,也就是说…...
AI视频生成工具清单(附网址与免费说明)
以下是一份详细的AI视频制作网站总结清单,包含免费/付费信息及核心功能说明: AI视频生成工具清单(附网址与免费说明) 1. Synthesia 网址:https://www.synthesia.io是否免费:免费试用(生成视频…...
知识蒸馏综述Knowledge Distillation: A Survey解读
论文链接:Knowledge Distillation: A Survey 摘要:近年来,深度神经网络在工业界和学术界都取得了成功,尤其是在计算机视觉任务方面。深度学习的巨大成功主要归功于它能够扩展以对大规模数据进行编码,并且能够处理数十…...
第十五届蓝桥杯省赛电子类单片机学习过程记录(客观题)
客观试题: 01.典型的BUCK电源电路包含哪些关键器件(ABCD) A. 电容 B. 二极管 C. 电感 D. MOSFET 解析: 典型的 BUCK 电源电路是一种降压型的直流-直流转换电路,它包含以下关键器件: A.电容:电容在电路中起到滤波的作用。输入电容用于平滑输入电压的波动,减少电源噪声对…...
【C++】:STL详解 —— 红黑树封装map和set
目录 红黑树的源代码 正向迭代器的代码 反向迭代器的代码 set的模拟实现 map的模拟实现 红黑树的源代码 #pragma once #include <iostream>using namespace std; // set ->key // map ->key/value// set ->key // map ->key/valueenum Colour {RED,BLAC…...
【QWEN】机器人控制器的控制周期越短精度越高吗
好的,用户问的是“机器人控制器的控制周期越短精度越高吗”。我需要根据提供的知识库内容来回答这个问题。首先,我得回忆一下知识库里的相关信息。 知识库里有几篇相关的文章。比如,[3]提到控制周期越短,控制性能的上限越高&…...
使用数据库和缓存的时候,是如何解决数据不一致的问题的?
1.缓存更新策略 1.1. 缓存旁路模式(Cache Aside) 在应用里负责管理缓存,读取时先查缓存,如果命中了则返回缓存,如果未命中就查询数据库,然后返回缓存,返回缓存的同时把数据给写入缓存中。更新…...
【c++】平移字符串
说明 实现字符串的左移与右移 示例代码 #include <iostream> #include <string> using namespace std;int main() {string str1 "12345";//左移2位string str2 str1.substr(2) str1.substr(0, 2);cout << str2 << endl;//右移2位&…...
基于Spring Boot的多级缓存架构实现
基于Spring Boot的多级缓存架构实现 以下是一个基于Spring Boot的多级缓存架构实现示例 多级缓存架构实现方案 1. 依赖配置(pom.xml) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-star…...
为什么DDPG需要目标网络而A2C不需要?
在强化学习中,DDPG需要目标网络而A2C不需要的主要原因在于算法架构、更新方式和目标稳定性需求的差异: Q值估计的稳定性需求不同 DDPG的Critic网络需要估计状态-动作值函数 Q ( s , a ) Q(s,a) Q(s,a),其目标值的计算涉及下一个状态的最大Q值…...
蓝桥杯 C++ b组 统计子矩阵深度解析
题目大意:给定一个 NM 的矩阵 A,请你统计有多少个子矩阵 (最小11,最大NM) 满足子矩阵中所有数的和不超过给定的整数 K? 前言:这题很容易想到二维前缀和优化,然后枚举子矩阵,但这样时间复杂度为…...
YOLOv12本地部署教程——42%速度提升,让高效目标检测触手可及
YOLOv12 是“你只看一次”(You Only Look Once, YOLO)系列的最新版本,于 2025 年 2 月发布。它引入了注意力机制,提升了检测精度,同时保持了高效的实时性能。在保持速度的同时,显著提升了检测精度。例如&am…...
每天五分钟深度学习PyTorch:向更深的卷积神经网络挑战的ResNet
本文重点 ResNet大名鼎鼎,它是由何恺明团队设计的,它获取了2015年ImageNet冠军,它很好的解决了当神经网络层数过多出现的难以训练的问题,它创造性的设计了跳跃连接的方式,使得卷积神经网络的层数出现了大幅度提升,设置可以达到上千层,可以说resnet对于网络模型的设计具…...
C++11新特性 11.基于范围的for循环
一.简介 基本概念: 在 C 中,基于范围的 for 循环(Range-based for loop)是一种简化容器遍历的语法糖,适用于所有支持 begin() 和 end() 的容器(如 vector、map、array 等)。以下是其核心用法和…...
Linux搜索---locate
locate locate 是 Linux 系统中用于快速查找文件和目录的命令。它并非实时遍历文件系统,而是通过搜索预先建立的文件数据库来定位文件。该数据库由 updatedb 程序定期(通常是每天)更新,收录了系统中所有文件的路径信息࿰…...
c语言笔记 一维数组与二维数组
1.一维数组和二维数组名加1代表什么意思,偏移多少单位? 方法:1就是以数组的元素类型的字节为单位去偏移。 先看结论再代码验证: 一维数组名+1表示加一个整型单位的偏移量,也可以这么理解1就是以数组的元…...
认识Event Loop【1】
前言 这应该是一个系列文章,因为我觉得Event Loop(事件循环)是一件很抽象也很重要的一个机制。eventloop这个知识点处于非常杂糅的位置,和很多其他知识,如运行时、浏览器、渲染流程、数据结构、线程等等,也…...
《Linux栈破坏了,如何还原》
【栈破坏导读】栈破坏有了解过吗?何为栈破坏,栈破坏了,程序会立刻引发崩溃,我们通过gdb去调试coredump,栈被破坏的栈帧是没法被恢复的,这也给我们调试程序带来很大的困难,那如何还原栈破坏的第一…...
环形链表问题的探究与代码实现
在数据结构与算法的学习中,环形链表是一个经典的问题。它不仅考察对链表这种数据结构的理解,还涉及到指针操作和逻辑推理。本文将结合代码和图文,深入分析如何判断链表中是否有环以及如何找到环的入口点。 目录 一、判断链表中是否有环 …...
【CSS3】筑基篇
目录 复合选择器后代选择器子选择器并集选择器交集选择器伪类选择器 CSS 三大特性继承性层叠性优先级 背景属性背景色背景图背景图平铺方式背景图位置背景图缩放背景图固定背景复合属性 显示模式显示模式块级元素行内元素行内块元素 转换显示模式 结构伪类选择器结构伪类选择器…...
React:类组件(上)
kerwin老师我来了 类组件的创建 class组件,js里的类命名首字符大写,类里面包括构造函数,方法 组件类要继承React.Component才有效 必须包含render方法 import React from react class App extends React.Component{render() {return <…...
开启mysql远程登录
目录 前言开启步骤 前言 为了安全考虑,mysql默认不允许远程登录,需要我们自己开启。当然在远程登录之前mysql的端口也要开放。下面是mysql开启远程登录的步骤。 开启步骤 本地登录mysql mysql -u root -p然后输入登录密码 给登录账号授权 GRANT AL…...
Eclipse 查看 JAVA SE 23 官方API 源代码
第一步:下载 JAVA SE 23 官方API 源代码 JavaSE23API源代码资源-CSDN文库 (或者到open jdk网站JDK Builds from Oracle:)下载https://download.java.net/java/GA/jdk23.0.2/6da2a6609d6e406f85c491fcb119101b/7/GPL/openjdk-23.0.2_windows-…...
Spring Cloud之注册中心之Nacos的使用
目录 Naacos 服务注册/服务发现 引⼊Spring Cloud Alibaba依赖 引入Nacos依赖 引入Load Balance依赖 配置Nacos地址 服务端调用 启动服务 Naacos Nacos是Spring Cloud Alibaba的组件, Spring Cloud Alibaba遵循Spring Cloud中定义的服务注册, 服务发现规范. 因此使⽤Na…...
字符串相乘——力扣
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2", num2 "3" …...
机试准备第13天
第一题是模拟出入栈游戏。 #include <stdio.h> #include <stack> #include <iostream> using namespace std; int main() {string str;while(getline(cin, str)){stack<char> stk;int j 0;//扫描出栈序列strfor(char i a;i<z;i){stk.push(i);//每…...
基于OpenCV的车牌识别系统(源码+论文+部署教程)
运行环境 基于OpenCV的车牌识别系统运行环境如下: • Python: ≥ 3.5 • OpenCV: ≥ 4.0 • IDE工具:Visual Studio Code(可自行选择) • 技术栈:Python OpenCV Tkinte 主要功能 基于OpenCV的车牌识别系统主要…...
MySQL:CRUD(增删查改)
目录 一、准备工作 二、Create 新增 1、语法 2、单行数据全列插入 3、单行数据指定列插入 4、多行数据指定列插入 5、多行数据全列插入 三、Retrieve 检索 1、语法 2、全列查询 3、指定列查询 4、查询字段为表达式 (1)常量表达式 &…...
德鲁伊连接池
德鲁伊连接池(Druid Connection Pool)是一个开源的Java数据库连接池项目,用于提高数据库连接的性能和可靠性。德鲁伊连接池通过复用数据库连接、定时验证连接的可用性、自动回收空闲连接等机制,有效减少了数据库连接的创建和销毁开…...
【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器---tinyEasyMuduoWebServer
【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器—tinyEasyMuduoWebServer csdn项目: 原文链接:https://blog.csdn.net/weixin_45178775/article/details/122257814 github链接:https://github.com/wyewyewye/tinyEasyMuduo…...
