第四章 基本数据管理 4.1一个示例 代码:创建一个数据框 > manager<-c(1,2,3,4,5) 〉 date<-c("10/24/08”,”10/28/08”,”10/1/08","10/12/08","5/1/09") 〉 country<-c("US”,”US”,"UK”,"UK”,”UK”) > gender〈—c("M”,”F”,”F",”M","F”) > age〈-c(32,45,25,39,99) 〉 q1〈—c(5,3,3,3,2) > q2<—c(4,5,5,3,2) 〉 q3<—c(5,2,5,4,1) 〉 q4〈-c(5,5,5,NA,2) 〉 q5〈-c(5,5,2,NA,1) 〉 leadership〈—data.frame(manager,date,country,gender,age, q1,q2,q3,q4,q5,stringAsFactors=F) 4。2创建新变量 算术运算符:x%%y取余;x%/%y取整 代码:创建新变量: > mydata<—data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8)) 方法一: 〉 mydata$sum〈-mydata$x1+mydata$x2 〉 mydata$mean〈—(mydata$x1+mydata$x2)/2 方法二: 〉 attach(mydata) 〉 mydata$sumx<—x1+x2 〉 mydata$mean<—(x1+x2)/2 > detach(mydata) 方法三:(此方法将运算结果保存在了原始数据表格里) 〉 mydata〈-transform(mydata,sumx=x1+x2,meanx=(x1+x2)/2) > mydata 4。3变量的重编码 逻辑运算符:== 严格等于;!= 不等于;!x 非x;x|y x或y;x&y x和y; isTRUE(x) 测试x是否为真 代码:将leadership表的连续型年龄变量重编码为类别型变量 > leadership$age[leadership$age==99]<-NA 方法一: 〉 leadership$agecat[leadership$age〉75]〈—”Elder" 〉leadership$agecat[leadership$age〉=55&leadership$age<=75]<-”Middle Aged" 〉 leadership$agecat[leadership$age〈55]<-”Young" 方法二: >leadership〈—within(leadership,{agecat<-NA agecat[age>75]<-"Elder” agecat[age〉=55&age〈=75]〈—”Middle Aged” agecat[age<55]<-"Young”}) 4。4变量的重命名 直接调用交互式编辑器:fix(leadership); 编程形式:reshape函数包里的rename()函数 调用格式为:rename(dataframe,c(oldname=”newname","oldname”=”newname",…)) 例:〉install.packages("reshape") 〉 library(reshape) > leadership<—rename(leadership,c(manager="managerID”,date=”testDate”)) 通过names()函数来重命名变量 例:> names(leadership)[2]〈—”testDate” 4.5缺失值 检测缺失值是否存在:函数is.na() 例:> y〈-c(1,2,3,NA) > is.na(y) 输出[1] FALSE FALSE FALSE TRUE 重编码某些值为缺失值 例:〉 leadership$age[leadership$age==99]<—NA 在分析中排除缺失值 删除所有包含缺失值数据的行:函数na。omit() 例:〉newdata〈-na.omit(leadership) 4.6日期值 日期格式:%d 数字表示的日期,%a 缩写的星期名,%A 非缩写星期名,%m 月份,%b 缩写的月份,%B 非缩写月份,%y 两位数年份,%Y 四位数年份 将字符串形式日期化为数值形式:as。date()函数 调用格式:as.Date(x,”input_pormat”) 例:>mydate<—as.Date(c(“2007—06—22”,”2004—02-13”)) 转换日期格式 〉 strDates〈-c(”01/05/1965”,”08/16/1975") 〉 dates〈—as.Date(sreDates,”%m/%d/%Y”) 输出〉 dates [1] "1965—01-05" "1975-08—16" 输出当前日期和时间 〉 Sys。Date() 〉 date() 4。9数据集的合并 添加列:merge()函数 调用格式:total〈—merge(dataframeA,dataframeB,by="ID") 添加行:rbind()函数 调用格式:total〈-rbind(dataframeA,dataframeB) 随机抽样:sample()函数 从leadership数据集中随机抽取一个大小为3的样本: Mysample<—leadership[sample(1:nrow(leadership),3,replace=F)] 本文来源:https://www.wddqw.com/doc/7e3619ef561810a6f524ccbff121dd36a32dc46c.html