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 是不同的对象。

  1. 对象命名规则
    • 对象名不能以数字开头,但数字可以出现在对象名的中间或结尾。例如,a1 是合法的,但 1a 不是。
    • 在命名对象时,建议使用点(.)作为分隔符,这样可以提高可读性。例如:anova.result1。
  2. 示例:创建一个向量
    • 你可以通过如下命令创建一个向量:
      a <- c(10, 15, 21, 18)
      这个向量 a 包含了 4 个元素,数据类型为数值型(numeric),长度为 4。
  3. 命名注意事项
    • 在命名对象时,要避免与 R 中的保留名称(关键字)冲突。以下是一些保留名称示例:
      • NA:缺失值
      • NaN:非数值
      • pi:圆周率常数
      • LETTERS:包含所有大写字母的字符向量
      • letters:包含所有小写字母的字符向量
      • month.abb:月份的缩写
      • month.name:月份的全名

避免将对象命名为这些保留名称,以免与 R 语言的内置功能冲突。

 

R 中,有几种基本的数据类型:

  1. 数值型(Numeric)
    • 用于存储数字,包括整数和浮动点数。
    • 示例:100, 0, -4.335
  2. 字符型(Character)
    • 用于存储文本数据,通常用双引号或单引号括起来。
    • 示例:"China"
  3. 逻辑型(Logical)
    • 用于存储逻辑值,即 TRUE 或 FALSE。
    • 示例:TRUE, FALSE
  4. 因子型(Factor)
    • 用于表示分类数据,也就是不同类别或水平的变量。因子型变量可以用来表示类别,如性别、地区等。
    • 示例:factor(c("Male", "Female", "Female", "Male"))
    • 可以用来输入患者的信息
  5. 复数型(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:表示文件的第一行是列名。
      读取的结果会同样存储为数据框。

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.colcat.col我没写可以自己加

 

 

 

 

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

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

相关文章

LLM 模型 Prompt 工程

目录 1、Prompt 基础概念 2、Prompt 主要构成 3、Prompt 相关技术 3.1、思维链 3.2、自洽性 3.3、思维树 1、Prompt 基础概念 Prompt 工程是通过设计和优化自然语言提示&#xff08;Prompt&#xff09;&#xff0c;引导LLM生成符合特定任务需求的输出的技术。其核心目标是…

Springboot基础篇(4):自动配置原理

1 自动配置原理剖析 1.1 加载配置类的源码追溯 自动配置的触发入口&#xff1a; SpringBootApplication 组合注解是自动配置的起点&#xff0c;其核心包含 EnableAutoConfiguration&#xff0c;该注解使用AutoConfigurationImportSelector 实现配置类的动态加载。 启动类的注…

【大模型系列】开发工具Cursor使用配置及备忘

开发工具cursor使用过程的配置备忘 最近一段时间大模型开发工具cursor是比较火爆的&#xff0c;其提供的一个比较有价值的特性就是其ai辅助功能&#xff0c;其内部集成了若干大模型 提供免费使用期&#xff1b; 做大模型开发这个话题应该是绕不过的&#xff0c;就像开发java使…

vtkAppendPolyData vtkMultiBlockDataGroupFilter 区别 合并数据

Summary: vtkAppendPolyData vtkMultiBlockDataGroupFilter 区别 两个都是合并数据&#xff1b; 用于处理多块数据集的两种不同的过滤器&#xff08;filters&#xff09;&#xff0c;它们在处理和合并多块数据集方面有不同的用途和实现方式。 Part2:区别 它们的主要区别在于…

C++入门——输入输出、缺省参数

C入门——输入输出、缺省参数 一、C标准库——命名空间 std C标准库std是一个命名空间&#xff0c;全称为"standard"&#xff0c;其中包括标准模板库&#xff08;STL&#xff09;&#xff0c;输入输出系统&#xff0c;文件系统库&#xff0c;智能指针与内存管理&am…

定制开发开源AI智能名片S2B2C商城小程序:以“晒”为桥,构建信任,助力社交新零售飞跃

摘要&#xff1a;随着互联网的深入发展和社交媒体的普及&#xff0c;社交新零售逐渐成为商业领域的新热点。在这个充满机遇与挑战的时代&#xff0c;如何快速建立与陌生消费者的信任关系&#xff0c;成为决定商业成功的关键。本文将以定制开发开源AI智能名片S2B2C商城小程序为研…

【Linux】Linux Progress Pulse-进度条

> &#x1f343; 本系列为Linux的内容&#xff0c;如果感兴趣&#xff0c;欢迎订阅&#x1f6a9; > &#x1f38a;个人主页:【小编的个人主页】 >小编将在这里分享学习Linux的心路历程✨和知识分享&#x1f50d; >如果本篇文章有问题&#xff0c;还请多多包涵&a…

Zypher Network :基于零知识证明方案为 AI 赋予可信框架

Zypher Network 提出的系列方案正逐步成为破解这一困局的关键&#xff0c;其不仅为 LLM 和 AI Agent 等采用提供了一个可信的框架&#xff0c;也为其在更广泛行业中的应用铺平了道路。 LLM 的 “黑盒特性” 像 ChatGPT、DeepSeek、Grok 等大型语言模型&#xff08;LLM, Large …

从Manus到OpenManus:多智能体协作框架如何重构AI生产力?

文章目录 Manus&#xff1a;封闭生态下的通用AI智能体OpenManus&#xff1a;开源社区的闪速复刻挑战与未来&#xff1a;框架落地的现实边界当前局限性未来演进方向 OpenManus使用指南1. 环境配置2. 参数配置3. 替换搜索引擎4. 运行效果 协作框架开启AI生产力革命 Manus&#xf…

深入理解与配置 Nginx TCP 日志输出

一、背景介绍 在现代网络架构中&#xff0c;Nginx 作为一款高性能的 Web 服务器和反向代理服务器&#xff0c;广泛应用于各种场景。除了对 HTTP/HTTPS 协议的出色支持&#xff0c;Nginx 从 1.9.0 版本开始引入了对 TCP 和 UDP 协议的代理功能&#xff0c;这使得它在处理数据库…

Python - 轻量级后端框架 Flask

Flask是什么&#xff1f; Flask是一个轻量级的Python Web框架&#xff0c;用于构建Web应用程序和API。简单、灵活、易扩展&#xff0c;适合小型项目或需要快速开发的应用。 接口的输入和输出 输入&#xff1a;request GET参数、POST JSON数据、POST表单 from flask import…

<论文>MiniCPM:利用可扩展训练策略揭示小型语言模型的潜力

一、摘要 本文跟大家一起阅读的是清华大学的论文《MiniCPM: Unveiling the Potential of Small Language Models with Scalable Training Strategies》 摘要&#xff1a; 对具有高达万亿参数的大型语言模型&#xff08;LLMs&#xff09;的兴趣日益增长&#xff0c;但同时也引发…

好玩的谷歌浏览器插件-自定义谷歌浏览器光标皮肤插件-Chrome 的自定义光标

周末没有啥事 看到了一个非常有意思的插件 就是 在使用谷歌浏览器的时候&#xff0c;可以把鼠标的默认样式换一个皮肤。就像下面的这种样子。 实际谷歌浏览器插件开发对于有前端编程基础的小伙伴 还是比较容易的&#xff0c;实际也是写 html css js 。 所以这个插件使用的技术…

3.使用ElementUI搭建侧边栏及顶部栏

1. 安装ElementUI ElementUI是基于 Vue 2.0 的桌面端组件库。使用之前&#xff0c;需要在项目文件夹中安装ElementUI&#xff0c;在终端中输入以下命令&#xff0c;进行安装。 npm i element-ui -S并在main.js中引入ElementUI 2. 使用elmentUI组件进行页面布局 2.1 清空原…

调研:如何实现智能分析助手(Agent)(AutoCoder、FastGPT、AutoGen、DataCopilot)

文章目录 调研&#xff1a;如何实现智能分析助手&#xff08;Agent&#xff09;&#xff08;AutoCoder、FastGPT、AutoGen、DataCopilot&#xff09;一、交互流程二、数据流程三、架构分类四、开源产品4.1 AutoCoder&#xff08;知识库变体&#xff09;4.2 FastGPT&#xff08;…

matlab常见的配图代码实现1

1. 折线图 x linspace(0, 10, 100); y1 sin(x);y2 cos(x); figure; plot(x, y1, -o, LineWidth, 2, MarkerSize, 6, MarkerFaceColor, b); hold on;plot(x, y2, -s, LineWidth, 2, MarkerSize, 6, MarkerFaceColor, r); title(折线图); xlabel(X轴); ylabel(Y轴); legend(s…

【汇编语言】单片机程序执行过程

一、任务需求 指示灯LED4闪烁&#xff0c;亮0.5秒&#xff0c;灭0.5秒&#xff0c;无限循环 二、针对硬件的编程 1、确定原理图2、确定硬件的物理关系 三、设计步骤 1.用自己的语言描述工作流程 1.1指示灯LED4亮1.2延时0.5秒1.3指示灯LED4灭1.4延时0.5秒1.5跳转到1.1步 …

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(十二) socketio 消息处理

1.后端 在message.controller.js中 在sendMessage方法中 每当我们发送消息 需要socketio把这个消息转发给 接收人 加入转发逻辑 // 把消息发给指定的用户的socket const receiverSocketId getReceiverSocketId(receiverId); if(receiverSocketId) { io.to(receiverSocket…

【大模型】WPS 接入 DeepSeek-R1详解,打造全能AI办公助手

目录 一、前言 二、WPS接入AI工具优势​​​​​​​ 三、WPS接入AI工具两种方式 3.1 手动配置的方式 3.2 Office AI助手 四、WPS手动配置方式接入AI大模型 4.1 安装VBA插件 4.1.1 下载VBA插件并安装 4.2 配置WPS 4.3 WPS集成VB 4.4 AI助手效果测试 4.5 配置模板文…

SmolVLM2 - 将视频理解带到每个设备

本文翻译整理自&#xff1a;SmolVLM2: Bringing Video Understanding to Every Device https://huggingface.co/blog/smolvlm2 文章目录 TL;DR: SmolVLM 现在可以观看 &#x1f4fa; 并拥有更好的视觉理解一、关于 SmolVLM2二、 技术细节1、SmolVLM2 2.2B: 我们新的视觉和视频明…