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"
> count1
1 "a"
> count2
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
> df2,
Name Age
2 Bob 30
> df,2
1 25 30
> df2,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.col和cat.col我没写可以自己加

相关推荐
Scott9999HH4 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海5 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨7 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区9 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大9 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai9 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜10 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa10 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio