我一直在研究is.numeric和as.numeric,is.complex和as.complex等。我得到的一件事是mode()和storage.mode()之间的区别。 Mode()告诉我它是数字,复杂,逻辑和char对吗?那么storage.mode()究竟是做什么的呢?我不明白为什么需要storage.mode。任何解释都非常感谢:)
答案 0 :(得分:1)
mode 和 storage.mode 都返回一个字符串,给出对象的(存储)模式——通常是相同的——都依赖于 typeof(x) 的输出,见下面的例子。
mode(x) <- "newmode" 将对象 x 的模式更改为 newmode。仅当存在适当的 as.newmode 函数时才支持此功能,例如“logical”、“integer”、“double”、“complex”、“raw”、“character”、“list”、“expression”、“name” "、"符号"和"功能"。属性被保留(但见下文)。
storage.mode(x) <- "newmode" 是 mode<- 的更有效的原始版本,它适用于作为内部类型之一的 "newmode"(参见 typeof),但不适用于 "single"。属性被保留。
由于存储模式“single”只是R中的一个伪模式,它不会被mode或storage.mode报告:使用attr(object, "Csingle")来检查这个。但是,mode<- 可用于将模式设置为“single”,将实模式设置为“double”,将“Csingle”属性设置为 TRUE。设置任何其他模式将删除此属性。 -- 来自在线 R 文档