- data frame之于matrix,就像list之于vector,像是一个升级版,(一行)可以存储多种类型的数据(即每一列的数据类型可以不同)
- data frame的创建:
kids<-c(“Jack”,”Jill”)
ages<-c(12,10)
d<-data.frame(kids,ages,stringsAsFactors=FALSE)
-
data frame创建:数据框(Data frame) 前面我们已经看到一个数据框可以由函数read.
table 间接创建;这里也可以用函数data.frame来创建。数据框中的向
量必须有相同的长度,如果其中有一个比其它的短,它将“循环”整数
次(以使得其长度与其它向量相同):
> x <- 1:4; n <- 10; M <- c(10, 35); y <- 2:4
> data.frame(x, n)
x n
1 1 10
2 2 10
3 3 10
4 4 10
> data.frame(x, M)
x M
1 1 10
2 2 35
3 3 10
4 4 35 - data frame中元素的创建
1) d[[index]]
2) d$column_name 根据列名取出所在的列,如果有na那么可以用na.omit去除na值,然后进行操作
3) d[,index]:访问第index列
4) d[index,]:访问第index行
5) d[[a:b]]:访问第a列的第b个元素
6) d[a:b]:对data frame提取a列到b列来构成子frame。
- 对于data frame,依然可以在[]内写表达式来做过滤
- 如list的可扩展性一样,data frame也可以“扩展”——通过rbind增加行,通过cbind增加列(也可以通过d$newColumn<-c(aaa,bbb)这样来添加一个名为newColumn的列)
- merge方法可以合并两个data frame,类似于sql中的join
- lapply()可以将指定的方法f()作用于data frame的各个列
转自:http://datawarehou.se/knowledge/the-art-of-r-5/