R基本的数据管理--创建变量、变量重编码和重命名
2018-08-09 本文已影响217人
天秤座的机器狗
# R基本的数据管理--创建变量、变量重编码和重命名
#1创建变量
mydata <- data.frame(x1=c(2,3,4,5),x2=c(2,5,7,9))
mydata
# x1 x2
# 1 2 2
# 2 3 5
# 3 4 7
# 4 5 9
#添加第3列为求和列,第4列为求平均值列
mydata$sumx <- mydata$x1+mydata$x2
mydata
# x1 x2 sumx
# 1 2 2 4
# 2 3 5 8
# 3 4 7 11
# 4 5 9 14
mydata$meanx <- (mydata$x1+mydata$x2)/2
mydata
# x1 x2 sumx meanx
# 1 2 2 4 2.0
# 2 3 5 8 4.0
# 3 4 7 11 5.5
# 4 5 9 14 7.0
#2.变量重编码
manager <- c(1,2,3,4,5)
date <- c("8/1/18","8/2/18","8/3/18","8/4/18","8/5/18")
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)
survey <- data.frame(manager,date,country,gender,age,q1,q2,q3,q4,q5,stringsAsFactors = FALSE)
survey
# manager date country gender age q1 q2 q3 q4 q5
# 1 1 8/1/18 US M 32 5 4 5 5 5
# 2 2 8/2/18 US F 45 3 5 2 5 5
# 3 3 8/3/18 UK F 25 3 5 5 5 2
# 4 4 8/4/18 UK M 39 3 3 4 NA NA
# 5 5 8/5/18 UK F 99 2 2 1 2 1
survey$age[survey$age==99] <- NA #把年龄为99的值赋为空值
survey
# manager date country gender age q1 q2 q3 q4 q5
# 1 1 8/1/18 US M 32 5 4 5 5 5
# 2 2 8/2/18 US F 45 3 5 2 5 5
# 3 3 8/3/18 UK F 25 3 5 5 5 2
# 4 4 8/4/18 UK M 39 3 3 4 NA NA
# 5 5 8/5/18 UK F NA 2 2 1 2 1
survey$age[survey$age>75] <- "老年人" #把age大于75的定义为老年人
survey$age[survey$age>50 & survey$age < 75] <- "中年人"
survey$age[survey$age<55] <- "青年人"
survey
# manager date country gender age q1 q2 q3 q4 q5
# 1 1 8/1/18 US M 青年人 5 4 5 5 5
# 2 2 8/2/18 US F 青年人 3 5 2 5 5
# 3 3 8/3/18 UK F 青年人 3 5 5 5 2
# 4 4 8/4/18 UK M 青年人 3 3 4 NA NA
# 5 5 8/5/18 UK F <NA> 2 2 1 2 1
#中括号出现多是伴随着判断条件
#比如想把survey中来自UK的定义成女性,US为男性,则可以
# survey$gender[survey$country=="UK"] <- "F"
# survey$gender[survey$country=="US"] <- "M"
# survey
# manager date country gender age q1 q2 q3 q4 q5
# 1 1 8/1/18 US M 青年人 5 4 5 5 5
# 2 2 8/2/18 US M 青年人 3 5 2 5 5
# 3 3 8/3/18 UK F 青年人 3 5 5 5 2
# 4 4 8/4/18 UK F 青年人 3 3 4 NA NA
# 5 5 8/5/18 UK F <NA> 2 2 1 2 1
#3.变量重命名
#fix(survey) #可视化界面修改
names(survey) #names函数可以看看数据集有哪些变量
# [1] "manager" "date" "country" "gender" "age" "q1" "q2" "q3" "q4" "q5"
#names(survey)得到的结果也是向量
names(survey)[6] <- "question1" #把q1变量名改成question1
survey
# manager date country gender age question1 q2 q3 q4 q5
# 1 1 8/1/18 US M 青年人 5 4 5 5 5
# 2 2 8/2/18 US F 青年人 3 5 2 5 5
# 3 3 8/3/18 UK F 青年人 3 5 5 5 2
# 4 4 8/4/18 UK M 青年人 3 3 4 NA NA
# 5 5 8/5/18 UK F <NA> 2 2 1 2 1