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
上一篇 下一篇

猜你喜欢

热点阅读