当前位置:  开发笔记 > 前端 > 正文

R-数据框是列的列表吗?

如何解决《R-数据框是列的列表吗?》经验,为你挑选了1个好方法。

1)R中的数据帧是一列列表吗?

是。

df <- data.frame(a=c("the", "quick"), b=c("brown", "fox"), c=1:2)
is.list(df)        # -> TRUE
attr(df, "name")   # -> [1] "a" "b" "c"
df[[1]][2]         # -> "quick"

2)在R中将数据帧做成面向列(而不是面向行)的结构的设计决定是什么?

data.frame是列向量的列表。

is.atomic(df[[1]])     # -> TRUE
mode(df[[1]])          # -> [1] "character"
mode(df[[3]])          # -> [1] "numeric"

向量只能存储一种对象。“面向行”的data.frame将要求数据帧由列表组成。现在想象一下操作的性能如何

df[[1]][20000]

请注意,基于随机访问的向量为O(1),列表的为O(n),请注意基于列表的数据帧。

3)任何对相关设计文档或数据结构设计文章的引用将不胜感激。

http://adv-r.had.co.nz/Data-structures.html#data-frames



1> kliron..:

1)R中的数据帧是一列列表吗?

是。

df <- data.frame(a=c("the", "quick"), b=c("brown", "fox"), c=1:2)
is.list(df)        # -> TRUE
attr(df, "name")   # -> [1] "a" "b" "c"
df[[1]][2]         # -> "quick"

2)在R中将数据帧做成面向列(而不是面向行)的结构的设计决定是什么?

data.frame是列向量的列表。

is.atomic(df[[1]])     # -> TRUE
mode(df[[1]])          # -> [1] "character"
mode(df[[3]])          # -> [1] "numeric"

向量只能存储一种对象。“面向行”的data.frame将要求数据帧由列表组成。现在想象一下操作的性能如何

df[[1]][20000]

请注意,基于随机访问的向量为O(1),列表的为O(n),请注意基于列表的数据帧。

3)任何对相关设计文档或数据结构设计文章的引用将不胜感激。

http://adv-r.had.co.nz/Data-structures.html#data-frames

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有