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 篇原創文章 · 獲贊 67 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章