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)只有 TRUEFALSE 两种取值。逻辑值常用于筛选条件与判断。

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() 的输出,并写一句话说明它们分别在看什么。

变量类型:分别创建并检查 numericintegercharacterlogicalfactor,提交对应的 class() 输出。

数据结构:分别创建 vectormatrixarraydata.framelist,提交 class()dim()str() 等关键输出。

-- 包安装与依赖

从以下包中任选一个安装:tidyversereadxlwritexlcorrplotggpubr

写出你安装的包名,并提交一次 library() 成功加载后的记录(无报错即可)。

结合 help(package = ...)? 帮助文档,写 2~3 句话说明该包主要用于做什么,并附上你查看到的证据(例如帮助页面的关键描述或你运行的命令输出)。