且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《R语言编程艺术》——2.12 关于c()的更多内容

更新时间:2022-09-01 14:22:38

2.12 关于c()的更多内容

在本节中,我们将讨论与连接函数c()相关的一些其他内容,有时经常用到。
如果传递到c()中的参数有不同的类型,则它们将被降级为同一类型,该类型最大限度地保留它们的共同特性,如下所示:

《R语言编程艺术》——2.12 关于c()的更多内容

在第一个例子中,我们混合了整数型和字符型,R会选择把它们都转换为后者的类型。在第二个例子中,对于混合的表达式,R认为列表类型有较低的优先级。本书4.3节将对这一点作深入探讨。
你可能不会写如此组合的代码,但你可能会遇到发生这种情况的代码,因此理解它的效果显得尤为重要。
另一个需要注意的关键点是,c()函数对向量有扁平化的效果,就像该例:
《R语言编程艺术》——2.12 关于c()的更多内容

熟悉诸如Python等其他语言的人,可能预期前面这段代码会生成一个两层的对象。在R语言中这种事不会发生在向量上,尽管存在两层的列表,这在第4章将会看到。
在下一章,我们将接着讲解向量的两个非常重要的特例,即矩阵和数组。