生物信息学生R入门教程–R的数据结构

Matrix, DataFrame与List

list既然只是保存了一系列的指针,那么是否可以用这些指针指向一个Matrix, DataFrame或者其它的对象呢?答案当然是肯定的。

> mat <- matrix(1:12, ncol = 3)
> df <- data.frame(A = 1:3, B = letters[1:3], stringsAsFactors = FALSE)
> lst <- list(mat = mat, df = df)
> str(lst)
## List of 2
##  $ mat: int [1:4, 1:3] 1 2 3 4 5 6 7 8 9 10 ...
##  $ df :'data.frame': 3 obs. of  2 variables:
##   ..$ A: int [1:3] 1 2 3
##   ..$ B: chr [1:3] "a" "b" "c"

在使用list时需要记住的是,它是一种消耗内存的数据结构,如果数据量非常大,需要尽量避免使用list结构。

取值与赋值

下表总结了不同数据结构取值的方法。赋值使用'<-'可以使用”<-“, ”=“, 以及”->“三种形式的赋值符号。但本书只推荐使用'->'做为赋值符号。

降维 保持
Vector x[[1]] x[1]
List x[[1]] x[1]
Factor x[1:4, drop = T] x[1:4]
Array x[1, ] or x[, 1] x[1, , drop = F] or x[, 1, drop = F]
Data frame x[, 1] or x[[1]] x[, 1, drop = F] or x[1]

3 thoughts on “生物信息学生R入门教程–R的数据结构

  1. 老师,您好,刚看到您讲的vector这里;我试着
    a<-c(1,2,3)
    typeof(a) 得到的类型却是double,class(a) 类型则是numeric,为什么不是integer,请老师解答。

  2. 嗯,在rstudio里试了一下,确实可以了,在网上也找到了一篇博客,专门提到了这个问题,供大家参考:http://blog.sina.com.cn/s/blog_b37ea00701018uwo.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注