两个R问题:

  1. 变量的类型(由typeof返回)和类(由class返回)之间有什么区别?区别是否与C++语言相似?
  2. 变量的可能类型和类别是什么?

推荐答案

在R中,每个"对象"都有一个mode和一个class.前者表示对象在内存中的存储方式(数字、字符、列表和函数),而后者表示对象的抽象类型.例如:

d <- data.frame(V1=c(1,2))
class(d)
# [1] "data.frame"
mode(d)
# [1] "list"
typeof(d)
# list

正如您所见,数据帧以list的形式存储在内存中,但它们被包装成data.frame个对象.后者允许使用成员函数以及带有自定义行为的重载函数,如print.

typeof(storage.mode)通常会给出与mode相同的信息,但并不总是如此.举个例子:

typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"

这背后的原因可以找到here:

R特定函数typeof返回R对象的类型

功能mode提供了有关贝克尔、钱伯斯和;Wilks(1988),并且与S语言的其他实现更兼容

我在上面发布的链接还包含所有原生R basic types(向量、列表等)和所有compound objects(factors和data.frames)的列表,以及modetypeofclass如何与每种类型相关的一些示例.

R相关问答推荐

使用long()在dØr中过滤后获取元素数量

rvest函数read_html_live()不允许html_elements()正确读取

如何按照特定顺序拆分字符?

如何在ggplot 2 geom_segment图表中将UTC转换为EET?

如何从其他前面列中减go 特定列的平均值?

混淆矩阵,其中每列和等于1

如何使用stat_extract_all正确提取我的目标值?

单击 map 后,将坐标复制到剪贴板

ggplot的轴标签保存在officer中时被剪切

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

R函数,用于生成伪随机二进制序列,其中同一数字在一行中不出现超过两次

根据类别合并(汇总)某些行

合并后返回列表的数据帧列表

从圆到R中的多边形的标绘雷达图

派生程序包| ;无法检索';return()';的正文

使用R将简单的JSON解析为嵌套框架

优化从每个面的栅格中提取值

减少雨云面之间的间距并绘制所有统计数据点

从线的交点创建面

Conditional documentr::R中数据帧的summarize()