首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >R中的dataframe和list有什么区别?

R中的dataframe和list有什么区别?
EN

Stack Overflow用户
提问于 2013-04-09 19:56:53
回答 2查看 47.9K关注 0票数 78

dataframelistR中有什么区别?在什么情况下应该使用哪一个?哪一个更容易循环?

确切的问题:,,我必须首先存储3个字符串元素,像"a","b","c“。稍后,对于其中的每一个,我需要添加另外3个元素;例如,对于"a“,我必须添加"a1”、"a2“、"a3”。稍后,我必须使用嵌套的for循环来访问这些元素。

所以我对使用dataframe或list或其他数据类型感到困惑,在这些数据类型中,我可以先存储,然后追加(每列的种类)?

目前我收到一些错误,比如“要替换的项数不是替换长度的倍数”

EN

回答 2

Stack Overflow用户

发布于 2013-04-09 21:14:57

这个问题并不像一些人认为的那么愚蠢。我知道很多人都在为这种差异而苦苦挣扎,知道该在哪里使用。总结一下:

到目前为止,列表是R中最灵活的数据结构。它们可以被视为元素的集合,对每个元素的类、长度或结构没有任何限制。你唯一需要注意的是,你不能给两个元素起相同的名字。这可能会造成很多混乱,R不会为此给出错误:

代码语言:javascript
复制
> X <- list(a=1,b=2,a=3)
> X$a
[1] 1

数据帧也是列表,但它们有一些限制:

  • 你不能对两个不同的变量使用相同的名称
  • 一个数据框的所有元素都是向量
  • 一个数据框的所有元素都有相同的长度。

由于这些限制和由此产生的二维结构,数据帧可以模仿矩阵的某些行为。您可以选择行并对行执行操作。你不能用列表来做到这一点,因为在列表中没有定义行。

所有这些都意味着您应该对符合该二维结构的任何数据集使用数据框。从本质上讲,对于列与变量重合、行与单词广义上的单个观察值重合的任何数据集,您都可以使用数据框。对于所有其他结构,列表是可行的方法。

请注意,如果您想要嵌套结构,则必须使用列表。因为列表的元素可以是列表本身,所以您可以创建非常灵活的结构化对象。

票数 124
EN

Stack Overflow用户

发布于 2015-08-13 01:26:39

请看下面的示例:如果您使用apply而不是sapply来获取类-

代码语言:javascript
复制
apply(iris,2,class) #  function elements are rows or columns
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
"character"  "character"  "character"  "character"  "character" 

sapply(iris,class) # function elements are variables
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
"numeric"    "numeric"    "numeric"    "numeric"     "factor" 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15901224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档