R 基础笔记
R 和 Python 一样都是解释性、动态类型语言,因此存在相同点和差异点,为了方便学习 R 将结合 Python 的角度来了解 R。
1. 与 Python 基础应用比较
以下是对 Python 和 R 基础应用的比较:
| 目的 | R 方法 | Python 方法 |
| :——–: | :————-: | :————-: |
| 寻求帮助 | 使用 ?mean
表示查找 mean
函数帮助,相当于使用help("mean")
??plotting
表示寻求 plotting
帮助,相当于使用 help.search("plotting")
typeof(object)
查看对象类型,此外还可以使用 mode
| help(object)
查看函数和模块用途dir(object)
查看属性列表[^1]type(object)
查看对象类型 |
| 包管理 | install.packages("package_name")
update.packages(ask=FALSE)
remove.package("package_name")
| pip install package_name
pip update package_name
pip remove pakcage_name
|
| 调用包 | library(package_name)
,包名称不需要加引号 | 使用 import
语句 |
| 赋值方式 | 可以使用 <-
或者 =
,推荐使用 <-
| 使用 =
|
| 变量名 | 区分大小写,可以使用 .
作为变量名一部分;
如果是 .
做第一个字符,第二个字符只能是字母[^3] | 区分大小写 |
| 数据类型 | 基本数据对象类型:数值型、字符型、复数型、布尔型、向量
其他结构对象:因子、数组、矩阵、数据框、列表、时间序列 | 基本数据对象:数值型、字符型、布尔型
容器对象:列表、元组、字典、集合 |
| 算数运算符 | 保留了 +
, -
, *
, /
;指数标识符可以使用 ^
或者 **
| 保留 +
, -
, *
, /
, %
;但指数标识符只能使用 **
|
| 逻辑运算符 | >
, <
, >=
, <=
, 以及 !=
;逻辑连接词 &
, |
成员检查 %in%
| >
, <
, >=
, <=
, 以及 !=
;逻辑连接词 and
(&
), or
(|
)
成员检查 in
|
| 代码块 | 多数情况下需要使用 {}
来区分 | 使用缩进的方式控制代码块 |
| 注释 | 使用 #
进行注释 | 使用 #
进行注释 |
| 运行脚本 | Rscript file.R
| python file.py
|
2. R 基本应用
工作目录
R 启动后有一个默认的工作目录,可以通过
getwd()
获取当前工作目录的绝对路径;如果需要切换工作目录,可以使用setwd()
寻求帮助
R 的帮助功能非常丰富,除了上面讲到了常用的寻求帮助方法,还有其他方法可以使用:
example(function_name)
已知一个函数名,需要确认正确使用示例args(function_name)
获取函数中参数列表ls()
显示对象名称apropos("object_name")
查找匹配其输入的变量以及函数,它可以传入一个正则表达式options()
确认环境变量function_name
输入函数名,而不调用(即没有输入()
)时可以查看函数代码——有时不能使用时,可以使用其他方法[^2]list.files()
显示工作目录下的文件
其他辅助功能,例如
Tab
自动补全
3. 数据处理和分析
3.1 常用分析方法
Python 使用 pandas
创建的 DataFrame 可以通过 head()
, tail()
等方法进行访问数据,在 R 中同样存在相应的方法:
head(object)
tail(object)
str(object)
colnames(object)
rownames(object)
name(object)
用于返回对象的名称summary(object)
可以使用其他 package 来完成相应的目的,psych
中的describe
方法可以得到更加详细的统计学信息
以上方法能够了解数据的一般性信息。如果需要对数据值进行分析,R 有专门的方法可以用于计算相应的统计值:
mean()
median()
cor()
mfv()
计算众数,需要加载modeest
包来使用该函数table()
用于类别性数据计数统计by()
按照某个变量分类对数据进行统计分析
如果对数据的列进行筛选,那么需要使用 $
去访问对象的列名,对于使用切片的方式访问数据和 Python 相同,可以使用 []
进行切片 df[, c(2, 4)]
——注意以 1 为起始,负数索引不是逆向索引而是不选择对应的索引;此外数据筛选同样可以采用掩码来方式。除此之外,还可以使用函数(这里可以结合使用 dplyr
的package 来处理)来完成相应的工作:
subset()
filter()
select()
同样在使用 R 的过程中需要对数据进行处理,例如删除缺失值、数据融合
na.omit()
用于删除具有缺失值数据merge()
用于合并数据
此外对于数据处理完成之后,可能还需要进行保存。相应的保存函数如下:
write.table()
3.2 其他分析方法
3.2.1 分面可视化
分面中,常用两种方法来进行分析,一种是 facet_wrap(~vriable_name)
和 另一种是facet_grid(vertical~horizontal)
。这两种方法需要注意,前者如果是多个变量将导致标签位置都在列上面,如下:

3.2.2 可视化优化
在进行可视化分析的时候,需要使用其他视觉信息来表达数据信息,例如点大小,色阶以及色调等方式。在使用方面可以通过调整相应的参数来进行修改图形信息,例如 ggplot 绘图中,可以通过传入 size 参数来调整图形大小, color 参数来调整颜色信息;使用 scale_colour_brewer()
来调整图形颜色以及使用添加相应的 legend 信息。