R语言学习笔记-第四章基本数据管理

在这里插入代码片R语言学习笔记-第四章基本数据管理(3.2)
—参考《R语言实战》
目录
1:创建新变量 //数据框加上一列
2:变量的重编码 //修改变量数据大小、连续性变量修改为类型变量
3:变量重命名 //fix()函数完成
4:缺失值:判断,修改,排除
5:日期值 //日期值转化方法、日期差计算
6:排序 //数据结构排序方法
7:数据集的合并 //横向、纵向合并数据集
8:数据集取子集 //subset()函数一步完成

manager <-c(1,2,3,4,5)
date1 <- 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,date1,country,gender,age,q1,q2,q3,q4,q5,stringsAsFactors = FALSE)

1:创键新变量
①transform()函数 and 直接修改法

mydata <-data.frame(x1=c(3,2,6,4),x2=c(3,4,2,8))
mydata s u m x < − m y d a t a sumx <-mydata sumx<mydatax1+mydata$x2

mydata <-transform(mydata,
meanx <-sumx/2)

2:变量重编码
①:修改变量数据
#指定某数据结构某变量的某一符合条件元素修改

leadership a g e [ l e a d e r s h i p age[leadership age[leadershipage==99] <-NA

②:变量重命名(使用within函数)

leadership <-within(leadership,{
agecat <-NA
agecat[age>75] <-“Elder” #不用再指定数据对象是谁
agecat[age<=75&age>=55] <-“Middle Age”
agecat[age<55] <-“Young” })

3:变量重命名
①:使用fix()交互修改变量名(以及其它数据)

fix(leadership)

此处仅仅学习了fix()交互修改方法,fix()函数对多种数据结构都具有修改的交互功能

4:缺失值
①:缺失值的排除
在计算过程中,由于数据的统计问题可能会出现缺失值导致计算报错。可以使用na.rm or na.omit=TRUE 自动忽略掉NA或NA所在行

x1 <-c(1,2,NA,3)
sum(x1)
[1] NA
sum(x1,na.rm=TRUE)
[1] 6
sum(x1,na.omit=TRUE)
[1] NA

5:日期值
(1)常见的日期格式
%d:数字表示日期00-30 %m:月份 00-12
%a:缩写星期名 %A:星期名 %b:缩写月名 %B:月名
%y:两位数年份 %Y:四位数年份
(2)as.Date(data,formate)函数

myformat<-"%m/%d/%y" 
leadership d a t e < − a s . D a t e ( l e a d e r s h i p date<-as.Date(leadership date<as.Date(leadershipdate,myformat)
#千万注意 日期格式应与日期所述形式相同

6:排序
①:[order(),]函数

attach(leadership)
newdata <-leadership[order(gender,-age),] #注意[order(),]有","
newdata #默认升序排列,在所指变量前加上-即可实现降序排列
detach(leadership)

7:数据集的合并
①:cbind()横向合并

p1 <-data.frame(age)

p2 <-data.frame(q1)
p1 <-cbind(p1,p2) #增加列“变量个数”
p1
age q1
1 32 5
2 45 3
3 25 3
4 39 3
5 99 2

②:rbind()纵向合并

p3 <-data.frame(age,q1)

p1 <-rbind(p1,p3) #增加行数数据
p1
age q1
1 32 5
2 45 3
3 25 3
4 39 3
5 99 2
6 32 5
7 45 3
8 25 3
9 39 3
10 99 2
(注意:纵向合并需要数据集变量个数相同,否则需要删除或者选取)

8:数据集的删除选取
①此处仅仅学习subset()函数来筛选子集
②:subset(data, request , select=c())

newdata <-subset(leadership,select=c(q1,q2,gender,age))
newdata
q1 q2 gender age
1 5 4 M 32
2 3 5 F 45
3 3 5 F 25
4 3 3 M 39
5 2 2 F 98

newdata <-subset(leadership,age>32)
newdata
managerID testdata country gender age q1 q2 q3 q4 q5 agecat
2 2 2020-01-21 US F 45 3 5 2 5 5 Young
4 4 2020-01-23 UK M 39 3 3 4 3 3 Young
5 5 2020-01-24 UK F 98 2 2 1 2 1 Elder

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冠long馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值