04.2#R基础(系统2)-R的构建子集

来源:互联网 发布:映射网络驱动器 密码 编辑:程序博客网 时间:2024/06/18 04:15
二、操作数据:构建子集
基本方法
[] 提取一个或者多个类型相同的元素
[[]] 从列表或者数据框中提取元素
$ 按照名字从列表或者数据库中提取元素

向量的子集


   矩阵的子集
       
数据框的子集
       

subset(x,x$v1>2)  #一个向量,一个条件

列表的子集
[[]]/ $/ [[]][] / [[]][[]]

x<-list(id=1:4,height=170,gender="male")
x[1]#获取元素名称和值
x[[1]]#获取元素的值
x$id#获取元素的值
x[c(1,3)]#获取多个元素
使用变量
y<-"id"
x[[y]]#==x[["id"]]

x1<-list(a=list(1,2,3,4),b=c("Monday","Tuesday"))
x1[[1]]
x1[[1]][2]

x1[[c(1,3)]]#获取x1列表中第一个元素中第三个值
x1[[c(2,2)]]#获取x1列表中第二个元素中第二个值
--不完全匹配
l<-list(aqqqa=1:10)
l$aqqqa
l$a
l[["a",exact=FALSE]]
l2<-list(aqqqa=1:10,b=1:2,abc=3:5)
x$a #NULL
x$aq

处理缺失值
x[!is.na(x)]  #取出非缺省值数据

x <- c(1, NA, 2, NA, 3)
y <- c("a", "b",NA, "c", NA)
z <- complete.cases(x,y)       #判断x,y都不是缺失值得情况
x[z]
y[z]

library(datasets)
head(airquality)
g <- complete.cases(airquality)

airquality[g,][1:10,]   #处理缺少值小案例

向量化操作(vectorized operation)
可以作用于向量、矩阵等结构,使代码简洁、易用

x+y

0 0
原创粉丝点击