R 语言数据类型与运算
1. 工作目录、对象与数据初探
查看当前工作目录(R 默认从这里找文件)。运行 getwd() 可能会显示 C:/Users/ysx0226/Documents。其中 ysx0226 是用户名,你的电脑上会是你自己的用户名。Windows 路径建议使用正斜杠 /。
getwd()
设置工作目录为桌面。把路径中的用户名改成你自己的用户名。设置完成后再运行 getwd(),确认工作目录已经切换到 C:/Users/你的用户名/Desktop。
setwd("C:/Users/ysx0226/Desktop")
getwd()
创建对象并查看它的值与类型。用 = 赋值后,直接输入变量名会打印当前值。class() 用于查看类型。
x = 10
class(x)
x
查看内置数据集 mtcars 的前几行。head() 默认显示前 6 行。也可以写 head(mtcars, 3) 只看前 3 行。
head(mtcars)
head(mtcars, 3)
查看 mtcars 的结构(每列是什么类型)。mtcars 有 32 行、11 列。这 11 列在 R 里都是数值型(numeric / double)。行名是车型名称(不是单独的一列)。
str(mtcars)
对 mtcars$mpg 做汇总统计。mtcars$mpg 是取出 mtcars 的这一列。summary() 会给出最小值、四分位数、中位数、均值、最大值。
summary(mtcars$mpg)
列出工作目录下的文件。dir() 显示的是当前工作目录下的文件名。如果你刚才 setwd() 到了别处,这里会跟着变化。
dir()
列出当前环境里的对象名(你创建过的变量)。ls() 看的是“内存里的对象名”。dir() 看的是“文件夹里的文件名”。
ls()
2. R 包安装与依赖
R 包(package)可以理解为“别人写好的函数、数据与说明文档”的集合。安装包就是把它下载安装到你的电脑上。加载包就是在当前会话中启用它的函数与数据。
安装包使用 install.packages()。安装通常只需要做一次。同一个包安装成功后,不需要每次都重复安装。
install.packages("ggplot2")
使用包前需要加载,常用 library()。加载是“本次会话有效”。你每次重新打开 R 后,通常都需要重新 library()。
library(ggplot2)
加载后可以查看包的介绍与帮助文档。也可以列出包里提供的函数名称。
help(package = ggplot2)
ls("package:ggplot2")
如果你想查看某个函数的帮助文档,可以用 ?。
?qplot
依赖包(dependency)是指某个包运行时需要用到的其它包。例如 A 包内部调用了 B 包的函数。这时安装 A 包,R 也需要把 B 包一并安装好。
多数情况下,直接安装主包即可,依赖会自动安装。如果网络中断或权限问题导致依赖没装全,会出现“there is no package called …”之类错误。
install.packages("ggplot2", dependencies = TRUE)
如果你已经知道缺的是哪个依赖包,也可以单独安装它。例如报错提示缺少 dplyr,就先安装 dplyr 再回到主包。
install.packages("dplyr")
国内网络环境下,安装包常见问题是下载慢或超时。解决方法之一是把 CRAN 镜像切换到国内镜像站。切换后再运行 install.packages(),会明显稳定一些。
可以用代码临时指定镜像。下面以清华镜像为例。
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("ggplot2")
如果安装时提示编译相关错误,常见原因是系统缺少编译工具或权限不足。Windows 通常优先安装二进制包。如遇权限问题,确认你的包库目录可写。
3. 常用变量类型
变量类型决定了你能对数据做哪些运算与统计。下面给出最常见的 5 类类型,以及如何创建与查看。
数值型(numeric)通常是小数。R 中大多数普通数字默认都是 numeric(底层常见为 double)。
a = 3.14
class(a)
整数型(integer)用 L 结尾表示。整数在计数、索引等场景经常出现。
b = 10L
class(b)
字符型(character)需要用引号包起来。字符可以是姓名、药名、编号等。
c = "黄芪"
class(c)
逻辑型(logical)只有 TRUE 和 FALSE 两种取值。逻辑值常用于筛选条件与判断。
d = TRUE
class(d)
因子型(factor)用于表示“分类变量”。因子有水平(levels),例如证型、分组、性别等。
e = factor(c("气虚", "血虚", "气虚"))
class(e)
levels(e)
4. 常用数据结构
数据结构决定了“数据如何组织”。下面给出 5 种常用结构的创建方式与查看方式。
向量(vector)是 R 最基础的结构。同一个向量中的元素类型通常一致。
v = c(1, 2, 3, 4)
class(v)
length(v)
矩阵(matrix)是二维结构(行×列),元素类型一致。常用于数值计算与线性代数。
m = matrix(1:6, nrow = 2, byrow = TRUE)
dim(m)
m
数组(array)可以是多维结构(例如 3 维)。元素类型一致。
arr = array(1:12, dim = c(2, 3, 2))
dim(arr)
数据框(data.frame)是最常见的表格结构。每一列是一个向量,列与列之间可以是不同类型。
df = data.frame(
id = c("P001", "P002", "P003"),
age = c(22, 25, 29),
zheng = factor(c("气虚", "血虚", "气虚")),
stringsAsFactors = FALSE
)
str(df)
head(df)
列表(list)可以把不同类型、不同长度的对象放在一起。适合存放“一个对象包含多块信息”的情况。
lst = list(
name = "李某",
age = 25,
labs = c(4.9, 5.2, 5.1),
note = "随访正常"
)
str(lst)
5. 实验内容
-- 工作目录与变量类型
工作目录:提交一次 getwd() 输出,以及切换到桌面后再次 getwd() 的输出。
对象与文件:新建一些任意变量,然后提交 ls() 与 dir() 的输出,并写一句话说明它们分别在看什么。
变量类型:分别创建并检查 numeric、integer、character、logical、factor,提交对应的 class() 输出。
数据结构:分别创建 vector、matrix、array、data.frame、list,提交 class()、dim() 或 str() 等关键输出。
-- 包安装与依赖
从以下包中任选一个安装:tidyverse、readxl、writexl、corrplot、ggpubr。
写出你安装的包名,并提交一次 library() 成功加载后的记录(无报错即可)。
结合 help(package = ...) 或 ? 帮助文档,写 2~3 句话说明该包主要用于做什么,并附上你查看到的证据(例如帮助页面的关键描述或你运行的命令输出)。