3-3 数据框的子集

> x <- data.frame(v1=1:5,v2=6:10,v3=11:15)
> x
v1 v2 v3
1 1 6 11
2 2 7 12
3 3 8 13
4 4 9 14
5 5 10 15
 

> x$v3[c(2,4)] <- NA
> x
v1 v2 v3
1 1 6 11
2 2 7 NA
3 3 8 13
4 4 9 NA
5 5 10 15
 

> #找出第2列
> x[,2]
[1] 6 7 8 9 10
 

> x[,"v2"]
[1] 6 7 8 9 10
 

> x[( x$v1<4&x$v2>= 8),] #找出第1列小于4并且第2列大于等于8的元素
v1 v2 v3
3 3 8 13
 

> x[x$v1>2,] #第1列大于2的所有元素
v1 v2 v3
3 3 8 13
4 4 9 NA
5 5 10 15
 

> x[which(x$v1>2),] #使用which函数筛选第1列大于2的所有元素
v1 v2 v3
3 3 8 13
4 4 9 NA
5 5 10 15
 

> ?which
 

> which(x$v1>2)
[1] 3 4 5
 

> x$v1>2
[1] FALSE FALSE TRUE TRUE TRUE
 

> subset(x,x$v1>2) #和上面的操作一样,筛选第1列大于2的所有元素
v1 v2 v3
3 3 8 13
4 4 9 NA
5 5 10 15

posted @ 2018-11-11 15:31  hank-li  阅读(184)  评论(0编辑  收藏  举报