R 中的向量和因子
介绍
在本指南中,我们将讨论向量和因子。简而言之,向量是原子值的列表,而因子是向量的列表。这两个特性使我们能够理解 R 中最基本的数据结构元素并开始统计分析之旅。首先,我们将澄清每个概念,然后我们将查看每个概念的演示。
向量
这些是 R 中最基本的数据对象。您可以区分总共六种原子类型,并根据当前情况以最有效的方式使用它们。
原子类型:
- 特点
- 逻辑
- 整数
- 双倍的
- 复杂的
- 生的
让我们创建一个小脚本来演示其中的每一个。
print("welcome")
print(3.14)
print(100L)
print(FALSE)
print(10+3i)
print(charToRaw('atomic raw'))
执行它们将产生以下输出。
1] "welcome"
[1] 3.14
[1] 100
[1] FALSE
[1] 10+3i
[1] 61 74 6f 6d 69 63 20 72 61 77
第一行表示一个原子字符向量,您可能在其他编程语言中熟悉它,如字符串或字符序列。第二行是原子双精度类型,第三行是原子整数类型。第四行是原子布尔类型,可以是 TRUE 或 FALSE。最后使用 charToRaw ()函数将我们的原子字符类型转换为原子原始类型。输出实际上是字符序列的字节表示。
整数和双原子向量允许您创建一个序列,可以按照以下方式完成。
假设您需要一个双精度值序列来完成一项任务。如果您对增量 1 感到满意,则可以按以下方式执行。
v <- 0.3:10.3
print(v)
输出应如下所示。
0.3 1.3 2.3 3.3 4.3 5.3 6.3 7.3 8.3 9.3 10.3
如果您需要将增量更改为自定义值,seq()函数可以帮助您。
v <- seq(0,10,by = 0.5)
print(v)
在这种情况下,输出显示增量为 0.5。
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
向量的行为与数组非常相似。您可以选择访问子集或向量,或者通过索引获取元素。请记住,索引从 1 开始!假设您有一个代表 IT 设备的字符原子向量,并且您需要获取前两个字符。您可以按照以下方式执行此操作。
t <- c("Server","Switch","Router","Firewall","Monitor")
u <- t[c(1,2)]
print(u)
输出应如下所示。
1] "Server" "Switch"
您也可以选择使用负索引来访问元素。此概念与其他编程语言一样有效。例如,获取索引为-2 的元素意味着您访问了最后一个元素之前的元素。
如果您有长度相同的向量,则可以选择使用加、减、乘、除运算符来操作它们。这在模拟或演示矩阵运算时非常方便。
假设您有两个具有三个值的向量,并且类型为双精度。
v2 <- c(1.1,2.2,3.3)
v1 <- c(4.4,5.5,6.6)
按顺序执行以下操作。
v1 + v2
v1 - v2
v1 * v2
v1 / v2
您应该会得到以下结果。
1] 5.5 7.7 9.9
[1] 3.3 3.3 3.3
[1] 4.84 12.10 21.78
[1] 4.0 2.5 2.0
如果您要对两个长度不同的向量执行算术运算,则有一个称为向量回收的概念会发挥作用。较短向量的元素将被回收,以便运算完成并产生结果。唯一需要记住的是,只有当较长向量是较短向量的倍数时,它才会起作用,否则它将失败。
例如:
v1 <- c(1,2,3,4,5,6)
v2 <- c(7,8)
v1 * v2
输出:
1] 7 16 21 32 35 48
v2的内容元素将被视为7,8,7,8,7,8。
最后但同样重要的是,当你使用向量时,你应该记住sort()函数。它接受一个原子向量,并根据函数调用按降序或升序对元素进行排序。
# sort increasing order
v1 <- sort(c(4,2,3,1,9,8,6))
# sort decreasing order
v1 <- sort(c(4,2,3,1,9,8,6), decreasing = TRUE)
排序函数的减少参数默认为 FALSE。
因素
因子在统计建模和分析中广受欢迎。从概念上讲,因子在 R 中实现为可以取有限数量不同值的变量。它们也称为分类变量。在实现上,因子存储为一个整数值向量,并带有一组相应的字符值,用于显示因子。为了创建一个因子,需要使用factor()函数。当您创建一个因子时,您需要指定的唯一输入参数是一个来自任何原子类型的值向量,然后 factor 函数将返回一个因子值向量。这与级别的概念有关,其中因子的级别基本上是不同元素的数量。
让我们以一个保存原子特征并将其转换为因子的示例向量为例。该向量保存不同类型的饮料。
drinks <- factor(c("beer", "wine", "rum", "whiskey","cocktail","whiskey","rum"))
print(drink)
输出应如下所示。
1] beer wine rum whiskey cocktail whiskey rum
首先要注意的是,从原子特征向量创建的因子的元素是按顺序存储的。要获取唯一元素的子集,可以使用 levels 函数。
levels(drinks)
这将返回以下结果。
1] "beer" "cocktail" "rum" "whiskey" "wine"
请注意项目周围的双引号。
您可以通过从 1 开始的索引来访问因子的元素!
为了访问第三个元素,您需要使用此代码。
drinks[3]
您还可以访问因子的子部分。假设您需要前两个元素。
drinks[c(1,3)]
您还可以修改因子的元素,但请注意,您不能修改其级别之外的元素。
例如,这将有效。
drinks[1] <- "wine"
这将会失败。
drinks[1] <- "Coca Cola"
为了克服这个问题,需要引入一个新的水平。
levels(drinks) <- c(levels(drinks), "Coca Cola")
drinks[1] <- "Coca Cola"
输出应如下所示。
1] Coca Cola wine rum whiskey cocktail whiskey rum
结论
在本指南中,我们积累了有效使用向量和因子的知识。我们研究了这些概念之间的区别,并了解了它们如何相互构建以促进统计分析。我希望本指南对您有所帮助,并感谢您阅读它!
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~