R语言:数据管理常用命令

1. 合并数据库

横项合并: data3<- merge(data1,data2, by=c("V1"), all=T)  //all=F则只保留能合并上的部分

纵向合并:data3 <- cbind(data1,data2)  //横向合并也可以用rbind


2. 变量重新命名

data1 <- rename(data1, c(oldname="newname"))  //需要安装reshape这个package

names(data1)[2:4] <- c("A1", "A2","A3")  //把第2-4列的变量名改为A1,A2,A3


3. 查重去重

unique(data1)  //整个数据库去重

data1[!duplicated(data1$height), ]  //去除身高重复的值

或:

index <- duplicated(data1$height)

data2 <- data1[!index, ]  //也是去除身高重复的值


4. 变量分组并创建新变量:

data1$birthcohort <- ifelse(data1$age<40, c("young"), c("old"))  //生成新变量birthcohort,如果年龄小于40赋值young,否则赋值为old


5. 读取数据库时去掉missing data, 或只读取有完整数据的记录

data1clean = na.omit(data1) 


6. 数据分亚组

datafemale = data1[data1$sex == "female", ]    //只读取女性的数据

data35 =data1[data1$Age <35, ]   //只读取小于35岁的


7. 导出数据

例如,导出泰坦尼克数据库中1等舱的人的数据

 Titanic=read.csv("https://goo.gl/4Gqsnz")  #从网络读取数据

class1 = titanicC[titanicC$Pclass==1,]

write.table(class1,file="titanic_class1.txt",sep="\t",quote=F)     #txt文件,TAB分隔,不要引号


8. dplyr命令: 用%>%链接起来的pipeline

同样是泰坦尼克数据,计算每个舱位等级的随机20名女性的平均生存率,并按舱位等级降序排列

survive20randomfemales = titanicC %>% group_by(Pclass) %>% filter(Sex=="female") %>% sample_n(20) %>% 
  summarise(meansurvive=mean(Survived)) %>%
  arrange(desc(Pclass))


9. 看变量中是否存在某个或某几个单词,用grepl命令

例如看川普text数据中是否存在america这个单词

trump$america = grepl("america", trump$text,ignore.case = T)  #ignorecase表示忽略大小写


例如,看川普数据中出现过多少个以下单词,并计算数量

A <- c("great","again","trump","loser","china")


newdata = data.frame(NA)  #生成一个新的dataframe
for(i in A){
  yesno=grepl(i, trump$text,ignore.case = T)
  count=sum(yesno=="TRUE")
  newdata[[i]]<- count  #这样会生成一个新dataframe,生成变量为i,对应值是count
  print(paste(i,count))
}
newdata = newdata[, -1]


#即可生成如下结果

[1] "great 148"
[1] "again 50"
[1] "trump 83"
[1] "loser 0"
[1] "china 14"


10. R 更新

install.packages("installr")
library("installr")
updateR()

发布了30 篇原创文章 · 获赞 65 · 访问量 35万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览