4.10 数据集取子集
对变量或观测进行保留或删除。
4.10.1 选入(保留)变量
从一个大数据集中选择有限数量第变量创建一个新的数据集。dataframe[row indices, column indices]
newdata <-leadership[, c(6:10)]
paste()函数创建字符型向量。
myvars <- paste("q"), 1:5, sep = "")
newdata <- leadership[myvars]
4.10.2 剔除(丢弃)变量
剔除变量原因很多。比如,某个变量有缺失值。
# 剔除变量q3和q4。
myvars <- names(leadership) %in% c("q3", "q4") # %in%返回一个逻辑型向量
newdata <- leadership[!myvars] # 运算符(!)将逻辑值反转
newdata <- leadership[c(-8, -9)]
leadership$q3 <- leadership$q4 <- NULL
丢弃变量是保留变量的逆向操作。
4.10.3 选入观测
选入或剔除观测(行)通常是成功的数据准备和数据分析的一个关键方面。
newdata <- leadership[1:3,] # 取前三行
newdata <- leadership[leadership$gender == "M" & leadership$age > 30, ] # 选择所有30岁以上的男性
attach(leadership)
newdata <- leadership[gender == "M" & age > 30, ]
detach(leadership)
对日期进行操作
leadership$date <- as.Date(leadership$date, "%m%d%y") # 将字符值转换为日期值
startdate <- as.Date("2009-01-01")
enddate <- as.Date("2009-10-31")
newdata <- leadership[which(leadership$date >= startdate & leadership$date <= enddate), ]
4.10.4 subset()函数
使用subset()函数大概是选择变量和观测最简单的方法了。
newdata <- subset(leadership, age >= 35 | age < 24, select = c(q1, q2, q3, q4)) # 选择所有age值大于等于35或小于24的行,保留变量q1到q4
newdata <- subset(leadership, gender == "M" & age > 25, select = gender:q4)
4.10.5 随机抽样
sample()函数可以从数据集中(有放回和无放回)抽取大小为n的一个随机样本。抽取和校正调查样本(sampling包),分析复杂调查数据(survey包)
mysample <- leadership[sample(1:nrow(leadership), 3, replace = F), ]
4.11 使用SQL语句操作数据框
略
4.12 小结
存储和处理缺失值和日期值的方式;
确定和转换对象的数据类型;
创建新变量和重编码;
数据排序,变量重命名;
合并数据,保留和丢弃变量。