R語言第二章資料處理⑧資料取樣和離散化
目錄
R語言第二章資料處理⑧資料取樣和離散化
=========================================
- 資料取樣:
setwd("E:\\Rwork") set.seed(1234) index <- sample(1:nrow(iris),10, replace = T) index sample_set <- iris[index,] index <- sample(nrow(iris),0.75*nrow(iris)) sample_set <- iris[index,]
- 數值離散化
data(iris) buckets <- 10 maxseplen <- max(iris$Sepal.Length) minseplen <- min(iris$Sepal.Length) cutpoints <- seq(minseplen, maxseplen, by = (maxseplen - minseplen ) / buckets ) cutpoints cutseplen <- cut(iris$Sepal.Length, breaks = cutpoints , include.lowest = TRUE) newiris <- data.frame(contseplen = iris$Sepal.Length , discseplen = cutseplen) newiris
- 資料合併
最常用merge()函式,但是這個函式使用時候這兩種情況需要注意:
1、merge(a,b),純粹地把兩個資料集合在一起,沒有溝通a、b資料集的by,這樣出現的資料很多,相當於a*b條資料;
2、merge函式是匹配到a,b資料集的並,都有的才匹配出來,如果a、b資料集ID不同,要用all=T(下面有all用法的程式碼)。
ID<-c(1,2,3,4) name<-c("Jim","Tony","Lisa","Tom") score<-c(89,22,78,78) student1<-data.frame(ID,name) student2<-data.frame(ID,score) total_student<-merge(student1,student2,by="ID")#或者rbind() total_student
ID<-c(1,2,3) name<-c("Jame","Kevin","Sunny") student1<-data.frame(ID,name) ID<-c(4,5,6) name<-c("Sun","Frame","Eric") student2<-data.frame(ID,name) total<-cbind(student1,student2) total