Temat: Sortowanie w R
W R można to wykonać na wiele różnych sposobów. Przykładowo
Filtrowanie:
> (data <- data.frame(col1=c(1:5, 20:24), col2=c(rep("TAK", 5), rep("NIE", 5)), col3=rep(c("X","Y"), 5)))
col1 col2 col3
1 1 TAK X
2 2 TAK Y
3 3 TAK X
4 4 TAK Y
5 5 TAK X
6 20 NIE Y
7 21 NIE X
8 22 NIE Y
9 23 NIE X
10 24 NIE Y
> data[ data$col2=="TAK" & data$col3=="X", ]
col1 col2 col3
1 1 TAK X
3 3 TAK X
5 5 TAK X
> subset(data, col2=="TAK" & col3=="X")
col1 col2 col3
1 1 TAK X
3 3 TAK X
5 5 TAK X
> library(dplyr)
> data %>% filter(col2=="TAK" & col3=="X") %>% as.data.frame
col1 col2 col3
1 1 TAK X
2 3 TAK X
3 5 TAK X
> library(sqldf)
> sqldf("SELECT * FROM data d WHERE d.col2='TAK' AND d.col3='X'")
col1 col2 col3
1 1 TAK X
2 3 TAK X
3 5 TAK X
Sortowanie:
> (data <- data.frame(col1=sample(1:10, replace=T), col2=sample(LETTERS, 10, replace=T)))
col1 col2
1 10 O
2 4 A
3 4 J
4 10 Z
5 9 N
6 4 I
7 9 I
8 8 S
9 1 D
10 1 C
> data[ with(data, order(col1, col2)), ]
col1 col2
10 1 C
9 1 D
2 4 A
6 4 I
3 4 J
8 8 S
7 9 I
5 9 N
1 10 O
4 10 Z
> data %>% arrange(col1, col2)
col1 col2
1 1 C
2 1 D
3 4 A
4 4 I
5 4 J
6 8 S
7 9 I
8 9 N
9 10 O
10 10 Z
> sqldf("SELECT * FROM data d ORDER BY d.col1, d.col2")
col1 col2
1 1 C
2 1 D
3 4 A
4 4 I
5 4 J
6 8 S
7 9 I
8 9 N
9 10 O
10 10 Z
...i wiele innych sposobów.
Ten post został edytowany przez Autora dnia 29.02.16 o godzinie 08:36