【问题标题】:How to know if the data is a list or data.frame in R如何知道数据是R中的列表还是data.frame
【发布时间】:2016-11-27 03:17:23
【问题描述】:

我如何知道我在 R 中的数据是列表还是 data.frame?

如果我使用typeof(x),它会显示列表,如果我使用class(x),它会显示data.frame?

【问题讨论】:

  • data.frame 是一种特殊的list。阅读thisthis
  • R 有is.listis.data.frame 函数来检查对象是列表还是data.frame。
  • @Narendra - 你试过is.list(data.frame())
  • @SymbolixAU Data.frame 也是一个列表,所以is.list(data.frame()) 将返回TRUE
  • @Narendra - 我知道,我以为你没有意识到你的评论

标签: r list dataframe


【解决方案1】:

为了澄清您的问题标题可能存在的误解,data.frame 也是一个列表。

is.list(data.frame())   # TRUE

但是,您可以使用inherits() 来查看对象是list 还是data.frame

inherits(data.frame(), "data.frame")  # TRUE
inherits(list(), "data.frame")        # FALSE

inherits(data.frame(), "list")        # FALSE
inherits(list(), "list")              # TRUE

【讨论】:

  • 非常感谢,不幸的是我得到了:> 继承(list(website_data_frame),“list”)[1] TRUE 继承(data.frame(website_data_frame),“data.frame”)[1] TRUE所以基本上两者都是真的?
  • 您正在检查list 是否继承了list,以及data.frame 是否继承了data.frame,所以显然两者都会并且应该返回TRUE
  • @Sumedh - 很好发现!
  • @carlosmaria - 你应该这样做inherits(website_data_frame, "list")。在我的回答中,data.frame()list() 参数是您的 website_data_frame。我只是创建空的data.frames/lists 来向您展示它是如何工作的。
  • @carlosmaria,如果这个答案解决了您的问题,您应该考虑通过单击投票总数下方左侧的复选标记来接受它。
猜你喜欢
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
相关资源
最近更新 更多