【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《R语言实战学习笔记-第四章》,欢迎阅读!
第四章 基本数据管理
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.wddqxz.cn/7e3619ef561810a6f524ccbff121dd36a32dc46c.html