本篇主要讲了R语言的几种类型,以及与数据之间的关系。
R: 4.3.2 (2023-10-31)
R studio: 2023.12.1+402 (2023.12.1+402)
一、Basic objects
1. vectors
一维数据集,常用于number, boolean, string, etc.
# define some variables |
# 可以使用vector作为新verctor创建的初始值 |
# 下标与计算,需要注意R语言中下标从1开始 |
注⚠️:由此可以看出一个特点,若两个vec计算,元素数量不相同时,会反复使用元素少的vec。(很像是矩阵的计算?(谁说vec不是一维矩阵呢?
比如上面的x只有4个元素,而x2有8个元素,所以x的元素使用了两次。
注⚠️:除了cos外,常用的数学函数还有:
函数 | 描述 |
---|---|
exp(x) | 计算e的x次幂。 |
log(x) | 计算x的自然对数。 |
log10(x) | 计算x的以10为底的对数。 |
log2(x) | 计算x的以2为底的对数。 |
sqrt(x) | 计算x的平方根。 |
^ 或 ** | 进行幂运算,例如x^2 或 x**2表示x的平方。 |
sin(x) | 计算x的正弦值。 |
cos(x) | 计算x的余弦值。 |
tan(x) | 计算x的正切值。 |
asin(x) | 计算x的反正弦值。 |
acos(x) | 计算x的反余弦值。 |
atan(x) | 计算x的反正切值。 |
sinh(x) | 计算x的双曲正弦值。 |
cosh(x) | 计算x的双曲余弦值。 |
tanh(x) | 计算x的双曲正切值。 |
ceiling(x) | 对x进行向上取整。 |
floor(x) | 对x进行向下取整。 |
abs(x) | 计算x的绝对值。 |
factorial(x) | 计算x的阶乘。 |
%% | 计算x除以y的余数,例如5 %% 2等于1。 |
2. More on Vectors and Indexing
2.1 子集
# 定义一个数字序列 |
3. Missing and interesting values - NA
3.1 重要的NA
> my.test.scores <- c(91, NA, NA) |
4. Lists
多维的数据集合
> str(xChar) |
5. Data frame
即为矩阵
# 创建一个date frame, 使用多个vec作为数据源 |
注⚠️:何为factor?
个人理解类似于“枚举”,有限集合。
# 一些 'sub' data frame 方法 |
注⚠️:从data frame中筛选数据,如果是单个元素,返回值类型为元素数量为1的vec;如果是一行或者一列,则为vec;如果是多行或者多列,则为一个新的data frame。
# 清理掉上述内容 |
cor()函数
用于计算相关系数的函数之一。相关系数是衡量两个变量之间线性关系强度和方向的统计量,通常用于探索变量之间的相关性。
cor(x, y, method = c("pearson", "kendall", "spearman"), use = c("everything", "all.obs", "complete.obs", "na.or.complete")) |
参数
x: 一个数值向量、矩阵或数据框,或者是一个因子。
y: (可选)一个数值向量、矩阵或数据框,或者是一个因子。如果指定了 y,则会计算 x 和 y 之间的相关系数;如果未指定 y,则会计算 x 中各个变量之间的相关系数。
method: (可选)指定计算相关系数的方法,可选值为 “pearson”(皮尔逊相关系数,默认)、“kendall”(肯德尔相关系数)和 “spearman”(斯皮尔曼相关系数)。
use: (可选)指定如何处理缺失值的参数,可选值包括 “everything”(默认,对所有数据点进行计算)、“all.obs”(对所有非缺失数据点进行计算)、“complete.obs”(对完全没有缺失值的数据点进行计算)、“na.or.complete”(对有缺失值但至少有一对完整观测值的数据点进行计算)。
返回值
返回一个相关系数矩阵,其中包含了各个变量之间的相关系数。
示例
假设有一个数据框 df 包含了两个数值变量 x 和 y
# 创建数据框 |
将输出两个变量 x 和 y 之间的皮尔逊相关系数。
皮尔逊相关系数(Pearson correlation coefficient)
是一种用来衡量两个变量之间线性关系强度和方向的统计量。它衡量的是两个变量之间的线性相关程度,取值范围在-1到1之间。
特点:
当 r=1 时,表示两个变量完全正相关,即一个变量增大时,另一个变量也增大,呈线性关系;
当 r=-1 时,表示两个变量完全负相关,即一个变量增大时,另一个变量减小,也呈线性关系;
当 r=0 时,表示两个变量之间没有线性关系,但并不代表两个变量之间没有其他类型的关系。
解释:
如果 r 的值接近于1或-1,表示两个变量之间有很强的线性关系,相关性较高;
如果 r 的值接近于0,表示两个变量之间的线性关系很弱,相关性较低。
适用范围:
皮尔逊相关系数要求两个变量的数据是连续变量;
它要求变量之间的关系是线性的。
注意事项:
皮尔逊相关系数只能衡量两个变量之间的线性关系,对于非线性关系不敏感;
相关系数不能说明因果关系,只能说明两个变量之间的相关性。
在实际数据分析中,皮尔逊相关系数经常用于探索变量之间的关系,特别是在探索两个连续变量之间的关系时,它是一个非常有用的工具。
6. Saving, loading, and importing data
6.1 save and reload
# 保存data frame到文件 |
> save.image() # saves file ".RData" |
注⚠️: save()和save.image()都是保存到文件;save()只保存指定的元素;save.image()保存所有的对象和数据。 load()加载.RData时,会把文件中保存的内存对象,覆盖掉当前内存中的
6.2 import
6.2.1 excel
# 安装并引用excel处理的依赖包 |
6.2.2 csv
> store.df <- read.csv("Data_descriptive.csv") |
7. function
# 一个简单的function se |
注⚠️:其他的一些数学函数
函数 | 描述 |
---|---|
mean() | 计算向量或数据框列的均值。 |
median() | 计算向量或数据框列的中位数。 |
min() | 计算向量或数据框列的最小值。 |
max() | 计算向量或数据框列的最大值。 |
quantile() | 计算向量或数据框列的四分位数。 |
cv() 或 coefficient_of_variation() | 计算向量或数据框列的变异系数。 |
sd() | 计算向量或数据框列的标准差。 |
var() | 计算向量或数据框列的方差。 |
stderr() | 计算向量或数据框列的标准误差。 |
cumsum() | 计算向量中元素的累计和。 |
cumprod() | 计算向量中元素的累计积。 |
sort() | 对向量或数据框列进行排序。 |
rank() | 计算向量或数据框列中元素的排名。 |
sum() | 计算向量或数据框列的总和。 |
prod() | 计算向量或数据框列的乘积。 |
cor()、cov() | 分别计算相关系数和协方差矩阵。 |
scale() | 对向量或数据框列进行标准化。 |
8. clean up
rm(list=ls()) # delete all visible objects in memory. |
二、week1 code
# 获取当前已加载文件的目录 |