R语言入门实战(二)

#创建leadership数据框

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")#性别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)#NA缺失值

q5<-c(5,5,2,NA,1)

leadership<-data.frame(manager,date,country,gender,age,

                       q1,q2,q3,q4,q5,stringsAsFactors = FALSE)

#data.frame数据框

leadership

dim(leadership)#显示他的维度(获取它的维数,五行十列)

leadership[2]#选择第二列

leadership[,2]#选择所有行第二列

leadership[2,]#选择第二行所有列

#创建新变量

#第一种方式

mydata<-data.frame(x1=c(2,2,6,4),

                   x2=c(3,4,2,8))

mydata$sumx<-mydata$x1+mydata$x2

#mydata$sumx就是一个名称

mydata$meanx<-(mydata$x1+mydata$x2)/2#求均值

mydata

#第二种方式

attach(mydata)#有attach就不用加$简化的作用

mydata$sumx<-x1+x2

mydata$meanx<-(x1+x2)/2

detach(mydata)

mydata

#第三种方式

#transform第一个原始数据框,第二、三个是加的变量

mydata<-transform(mydata,

                  sumx=x1+x2,

                  meanx=(x1+x2)/2)

mydata

#变量的重编码

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<-within(leadership,{

  agecat<-NA #刚开始是缺失值

  agecat[age>75]<-"Elder"

  agecat[age>=55&age<=75]<-"Middle Aged"

  agecat[age<55]<-"Young" })

leadership

#变量的重命名

#方法一

names(leadership)

names(leadership)[2]<-"testDate"#把date第二列名字改为testdate

leadership

#方法二rename重命名

library(plyr)

leadership<-rename(leadership,

                   c(manager="managerID",date="textdate"))

leadership

#缺失值 函数is.na 返回逻辑向量TRUE/FALSE

is.na(leadership[,6:10])#选leadership第六到十列

#重新编码某些值为缺失值

leadership$age[leadership$age==99]<-NA#选择age所在列中年龄为99变为缺失值

#在分析中排除缺失值

#第一种方法

x<-c(1,2,NA,3)

y<-x[1]+x[2]+x[3]+x[4]

z<-sum(x)

z

#第二种方法

x<-c(1,2,NA,3)

y<-sum(x,na.rm=TRUE)

y

#使用函数na.omit()删除不完整的观测即NA

leadership

newdata<-na.omit(leadership)#把含有缺失值的样本去掉,在这里是删除第四个样本

newdata

letters

#[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u"

#[22] "v" "w" "x" "y" "z"

letters[3]#返回”c“加引号是字符

#日期值函数as.Date()格式要清楚

mydates<-as.Date(c("2007-06-22","2004-02-13"))

#本来日期是字符串,现在强制把它作为日期

mydates

strDates<-c("01/05/1965","08/16/1975")#字符串形式的向量

dates<-as.Date(strDates,"%m/%d/%Y")#月日年

strDates

Sys.Date()

date()

today<-Sys.Date()#获取当前的时间

format(today,format="%B %d %Y")#显示年月日

format(today,format="%A")#显示具体的日期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值