library(dplyr)
library(tidyr)
Dplyr
Thao tác với dòng
Lọc: filter
Xoá trùng lặp: distinct
Sắp xếp: arrange
Thao tác với cột
Chọn cột: select
Đổi tên cột: rename
Tạo cột mới: mutate
case_when: điều kiện (dùng cho tiền xử lý, phân
tổ)Tạo bảng, tổng hợp dữ liệu: summarize(),
summarise()
mean, median, quantile,
min, max, sum
group_by tính cho từng nhóm
n(): số quan sát
first(): ô đầu tiên của nhóm đó
last(): ô cuổi cùng của nhóm
nth(number): ô bất kì của nhóm
%>%: pipe operator
Vế trái %>% Vế phải
Lấy ouput của hàm bên trái, làm input đầu tiên của hàm bên phải
Ví dụ: lọc xe có mpg > trung bình, chọn cột mpg, hp, wt, sắp xếp giảm dần theo wt
arrange(
select(
filter(mtcars, mpg > mean(mpg)),
mpg, hp, wt
),
desc(wt)
)
filter(mtcars, mpg > mean(mpg)) %>%
select(mpg, hp, wt) %>%
arrange(desc(wt))
gdp <- read.csv('gdp.csv', check.names = FALSE)
head(gdp)
gdp_long <- gather(
gdp,
`1960`:`2021`,
key="Year",
value="GDP",
convert = TRUE
)
gdp_long
gdp_long %>%
spread(Year, GDP)
gdp <- read.csv('gdp.csv', check.names = F)
pop <- read.csv('pop.csv', check.names = F)
head(pop)
gdp_long <- gather(
gdp,
`1960`:`2021`,
key = 'Year',
value = 'gdp',
convert = TRUE
) %>%
rename(
name = 1,
country_code = 2
)
gdp_long
# names(pop) 1960 - 2021
pop_long <- gather(
pop,
`1960`:`2021`,
key = "year",
value = "pop",
convert = TRUE
) %>%
rename(
name = 1,
code = 2
)
pop_long
inner_join(
gdp_long,
pop_long %>% select(-name),
by = c('country_code' = 'code', 'Year' = 'year')
)