操縱資料
原始資料—預處理後的資料
基本方法:
提取乙個或多個型別相同的元素
從列表或資料框中提取元素
$按名字從列表或資料框中提取元素
> m<-1:10 #r語言陣列下標從1開始
> m[1]
[1] 1
> m[5]
[1] 5
> m[1:5]
[1] 1 2 3 4 5
> m[6:10]
[1] 6 7 8 9 10
> m[m>5]
[1] 6 7 8 9 10
> m>5 #判斷
[1] false false false false false true true true true true
> m[m>5&m<7]
[1] 6
> m[m<3 |m>7]
[1] 1 2 8 9 10
>names(y)<- c("a","b","c","d")
> y
a b c d
1 2 3 4
> y[2]
b 2
> y["b"]
b 2
> n <- matrix(1:6,nrow=3,ncol=2)
> n
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> n[1,2] #[行,列]
[1] 4
> n[1,]
[1] 1 4
> n[,1]
[1] 1 2 3
> n[c(1,2),1] #取到第一,二行,第一列的元素
[1] 1 2
> class(n[1,2])
[1] "integer" #返回向量
> n[1,2,drop=false] #關掉返回向量,返回矩陣
[,1]
[1,] 4
#資料框子集
df <-data.frame(id=c(1,2,3,4),name=c("a","b","c","d"))
> df
id name
1 1 a
2 2 b
3 3 c
4 4 d
> df$id
[1] 1 2 3 4
> df$id[c(2,4)] <- na #缺失值
> df
id name
1 1 a
2 na b
3 3 c
4 na d
> df <-data.frame(id=c(1,2,3,4),id2=c(5,6,7,8),name=c("a","b","c","d"))
> df
id id2 name
1 1 5 a
2 2 6 b
3 3 7 c
4 4 8 d
> df[(df$id>2 & df$id2>6),]
id id2 name
3 3 7 c
4 4 8 d
> subset(df,df$id>3)
id id2 name
4 4 8 d
構建子集
列表子集
巢狀列表/不完全匹配
> mm <- list(id=1:4,height=170,gender="male")
> mm
$id[1] 1 2 3 4
$height
[1] 170
$gender
[1] "male"
> mm['id']
$id[1] 1 2 3 4
> mm[1]
$id[1] 1 2 3 4
> mm[[1]] #只拿到內容
[1] 1 2 3 4
> mm[[1]]
[1] 1 2 3 4
> mm[['id']]
[1] 1 2 3 4
> mm$id
[1] 1 2 3 4
> mm[c(1,3)]
$id[1] 1 2 3 4
$gender
[1] "male"
> y<-"id"
> mm[[y]]
[1] 1 2 3 4
> mm$id
[1] 1 2 3 4
> mm$y
null
#如何從列表中獲取巢狀的元素
> nn<-list(a=list(1,2,3,4),b=c("monday","tuesday"))
> nn #a本身也是列表
$a
$a[[1]]
[1] 1
$a[[2]]
[1] 2
$a[[3]]
[1] 3
$a[[4]]
[1] 4
$b[1] "monday" "tuesday"
> nn[[1]][[2]]
[1] 2
> nn[[1]][2] 子列表中的第二個元素
[[1]]
[1] 2
#獲取巢狀列表中的元素
> nn[[c(1,3)]] #列表中第乙個元素中的第三個元素
[1] 3
> nn[[c(2,2)]] #列表中第二個元素中的第二個元素
[1] "tuesday"
#不完全匹配
> l<-list(adfasdfasd=1:10)
> l$a
[1] 1 2 3 4 5 6 7 8 9 10
> l[["a"]]
null
> l[["a",exact=false]]
[1] 1 2 3 4 5 6 7 8 9 10
處理缺失值
ff<-c(1,na,2,na)
> ff[!is.na(ff)] #獲取不是缺失值的元素
[1] 1 2
ff1<-c(1,na,2,na,3)
ff2<-c("a","b",na,na,"c")
z<-complete.cases(ff1,ff2)
> ff1
[1] 1 na 2 na 3
>
> ff2
[1] "a" "b" na na "c"
> z
[1] true false false false true
library(datasets) #資料集
head(airquality)
> head(airquality) #每一行為乙個記錄,每一列乙個變數
ozone solar.r wind temp month day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 na na 14.3 56 5 5
6 28 na 14.9 66 5 6
> g<-complete.cases((airquality)) 去缺失值
> airquality[g,][1:10,] #取前十行
ozone solar.r wind temp month day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
7 23 299 8.6 65 5 7
8 19 99 13.8 59 5 8
9 8 19 20.1 61 5 9
12 16 256 9.7 69 5 12
13 11 290 9.2 66 5 13
14 14 274 10.9 68 5 14
R語言學習筆記
1.資料輸入 read.table n fileposition 函式 eg.x read.table c users administrator desktop 1.txt header t 目前只知道可以完好地讀入txt檔案 空格隔開 excel不支援 csv讀入不完全。ps.可以用excel生...
R語言學習筆記
二 data.frame資料框的常用操作 三 讀取資料檔案 四 排序函式 sort,rank,order 的區別 mydata tid s1 s2 1 1 2 1 2 1 2 1 3 1 3 2 4 2 4 3 5 3 5 4 unique mydata tid s1 s2 1 1 2 1 3 1 ...
R語言學習筆記
r語言的特點 r網路資源 常用命令 安裝某個包 install.packages alr4 檢視函式用法 比如要實現t檢驗,可以輸入?t.test 然後重點看usage和example。也可以用help t.test lm函式名及所在包 fitting linear models標題 descrip...