R 为什么具有相同类型和值的变量可以以不同方式打印()?

R 为什么具有相同类型和值的变量可以以不同方式打印()?,r,R,当作为print()函数的参数提供时,似乎具有相同类型和值的变量可能会产生不同的行为 #!/usr/bin/env Rscript a <- quantile(c(1), 1.0) b <- c(1) stopifnot(a == b) print(class(a)) print(a) print(class(b)) print(b) 不知何故,print()知道a是分位数,b不是分位数,即使这些信息在它们的值或class()报告的类型中不可用。发生什么事?是否存在与a和b相

当作为
print()
函数的参数提供时,似乎具有相同类型和值的变量可能会产生不同的行为

#!/usr/bin/env Rscript

a <- quantile(c(1), 1.0)
b <- c(1)

stopifnot(a == b)

print(class(a))
print(a)
print(class(b))
print(b)
不知何故,
print()
知道
a
是分位数,
b
不是分位数,即使这些信息在它们的值或
class()报告的类型中不可用。发生什么事?是否存在与
a
b
相关的其他类型信息


我从R文档中了解到,
a
b
都属于
vector
类型,具有
numerical
模式的组件,这就是了解其类型的全部内容。

此外,请尝试查看:

names(a)
#[1] "100%"

这与对象的
模式
类型
无关
quantile()
有一个
names=
参数,该参数在设置时附加到输出,根据
?quantile

names: logical; if true, the result has a ‘names’ attribute.  Set to
       ‘FALSE’ for speedup with many ‘probs’.

请尝试
属性(a)
名称(a)
谢谢。现在有人把它贴出来作为答案。
attributes(a)
#$names
#[1] "100%"
names: logical; if true, the result has a ‘names’ attribute.  Set to
       ‘FALSE’ for speedup with many ‘probs’.