R c() 创建一个与连接的对象具有相同类的容器。正确的?

标签 r

如果我连接一个数字( double ):

x <- c(0.5,0.6)

我似乎得到的是一个没有属性的对象,其类型为 double ,并且是一个 numeric 对象容器。

> x
[1] 0.5 0.6
> attributes(x)
NULL
> x
[1] 0.5 0.6
> type(x)
Error in type(x) : could not find function "type"
> typeof(x)
[1] "double"
> mode(x)
[1] "numeric"

我有点困惑,因为使用 c() 创建的容器与连接的对象具有相同的类型。我的理解是正确的还是根本错误的?

最佳答案

不确定我能否完全回答,但注意到 R 中没有标量,只有长度为 1 的向量可能会有所帮助。当您使用 c() 时,您可以连接两个或多个值制作更长的向量。

x <- 0
typeof(x)
#[1] "double"
length(x)
#[1] 1         # Now we have a double vector of length one.

y <- c(0)
typeof(y)
#[1] "double"
length(y)
#[1] 1         # Using c(), we made another double vector also of length one.

identical(x, y)  # are x and y identical objects?
#[1] TRUE        #  yep!

z <- c(0, 0)   # Now, use c() with two values
typeof(z)
#[1] "double"
length(z)
#[1] 2          # now we have a double vector of length two.

identical(x, z)
[1] FALSE

关于R c() 创建一个与连接的对象具有相同类的容器。正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59516295/

相关文章:

R - 如何确定数据帧列中的每个值是否为零?

r - 是否可以使用 Cairo 图形设备使用 ggsave 创建 .eps 文件?

r - R 中的内存高效分类器,用于极宽且不太长的训练集

r - 使用 r 中的 grid.table 打印到 pdf 文件 - 太多行无法容纳在一页上

r - 在ggplot中生成成对堆积条形图(仅在某些变量上使用position_dodge)

linux - 大数据读取子样本 R

r - 将 data.frame 对象直接转换为 R 中的列联表

r - 使用mapply并保留原始列表的结构

r - R中的零膨胀过度分散计数数据glmmTMB错误

r - 如何根据值列表扩展 tibble 中的行