我怎么知道我在R中的数据是一个列表还是一个 Dataframe ?如果我使用typeof(x),它会说列表,如果我使用class(x),它会说数据。帧?
typeof(x)
class(x)
bnlyeluc1#
为了澄清一个可能的误解,考虑到你的问题的标题,data.frame也是一个列表。
data.frame
is.list(data.frame()) # TRUE
但是,您可以使用inherits()来查看对象是list还是data.frame
inherits()
list
inherits(data.frame(), "data.frame") # TRUE inherits(list(), "data.frame") # FALSE inherits(data.frame(), "list") # FALSE inherits(list(), "list") # TRUE
或者,methods::is(),但总是稍微慢一点。
methods::is()
is(data.frame(), "data.frame") # TRUE is(list(), "data.frame") # FALSE is(data.frame(), "list") # FALSE is(list(), "list") # TRUE
来自?is帮助页面:虽然inherits是为S3类定义的,但它已经被修改,因此无论是S4还是非S4对象,返回的结果几乎总是等同于is。由于它是用C实现的,所以速度更快。
?is
1条答案
按热度按时间bnlyeluc1#
为了澄清一个可能的误解,考虑到你的问题的标题,
data.frame
也是一个列表。但是,您可以使用
inherits()
来查看对象是list
还是data.frame
或者,
methods::is()
,但总是稍微慢一点。来自
?is
帮助页面:虽然inherits是为S3类定义的,但它已经被修改,因此无论是S4还是非S4对象,返回的结果几乎总是等同于is。由于它是用C实现的,所以速度更快。