ืืืืคืืฉ R ืื Python ืืืื ืืจื ื, ืชืืฆื ืืืืืื ื ืืืืจืื ืืงืืืืืืจืื ืฉื ืืืื ืื ืื ืืฉื ืืืื ืืื ืขืืืฃ, ืืืืจ ืื ืื ืืืชืจ ืืขืืืื ืขื ื ืชืื ืื. ืื ืืืจืื ืืฆืขืจ, ืื ืืืืืจืื ืืืืืืืงืืช ืืืื ืืื ื ืฉืืืืฉืืื ืืืืืื.
ืืืจืช ืืืืจ ืื ืืื ืืืฉืืืช ืืช ืืื ืืงืืช ืขืืืื ืื ืชืื ืื ืืืกืืกืืืช ืืืืืืืช ืืคืืคืืืจืืืช ืืืืชืจ ืฉื ืฉืชื ืืฉืคืืช. ืืขืืืจ ืืงืืจืืื ืืฉืืื ืืืืืจืืช ืืืฉืื ืฉืื ืขืืืื ืื ืืืืขืื. ืืื ืฉืืืชื ื-Python, ืืื ืืืฆื ืืขืฉืืช ืืช ืืืชื ืืืืจ ื-R, ืืืืืคื.
ืืืืื ืืืืืจ ื ื ืชื ืืช ืืชืืืืจ ืฉื ืืืืืืืช ืืคืืคืืืจืืืช ืืืืชืจ ื-R. ืืื ืืืืืืืช ืืืืืืืช ืืกืคืจืืื tidyverse
ืืื ืืืืืื data.table
. ืืืืฉืืืช ืืช ืืชืืืืจ ืฉืืื ืขื pandas
, ืืืืืช ื ืืชืื ืื ืชืื ืื ืืคืืคืืืจืืช ืืืืชืจ ื-Python.
ื ืขืืืจ ืฆืขื ืืืจ ืฆืขื ืืืืจื ืื ืื ืชืื ืฉื ื ืืชืื ืื ืชืื ืื ืืืขืื ืชื ืืขื ืืืืฆืืข ืคืื ืงืฆืืืช ืืืื ืื ืืืืืืช ืืืืฆืขืืช Python ื-R.
ืชืืื
ืืืืจ ืื ืืืื ืืฉืืฉ ืืืฃ ืจืืืื ืื ืฉืืืช ืืืฆื ืืืฆืข ืคืขืืืช ืขืืืื ื ืชืื ืื ืืืฉืื ืืืืช ืืืืืืืช ืื ืืืงืืช.
ืืืืื ืชืืืืจ ืขืืงืจืืื ืืื R ืืคืืืชืื
1.1.ืืืฉื ืืคืื ืงืฆืืืช ืืืืืื
1.2.ืึฐืฉืึดืืึธื
1.3.ืืื ืืงืก
1.4.ืฉืืืืช ื-OOP
1.5.ืฆืื ืืจืืช
1.6.ืืื ื ืืืืข ืืื ืืืืื ืขื ืืืืืืืช ืืื ื ืฉืชืืฉ
2.1.ืืกืืืจ
2.2.ืืืืช ื ืชืื ืื
2.3.ืืืื ืคื ืื ืืชืงื ืช ืืืืืืช ืืืขื ื ืชืื ืื ืืฆืืจืช ืืกืืจืืช ื ืชืื ืื ืืืืจืช ืืขืืืืืช ืฉืืชื ืฆืจืื ืกืื ืื ืฉืืจืืช ืงืืืืฅ ืืืืจืืฆืื ืืืืื ืื ืื ืฉื ืืืืืืช (UNION) ืฆืืจืืฃ ืืืคืงื ืฉื ืืืืืืช (JOIN) ืคืื ืงืฆืืืช ืืกืืกืืืช ืฉื ืืืื ืืขืืืืืช ืืืืฉืืืช ืืืืช ืืชืืื ืืื ืฉืืืืช ืขืืืื ื ืชืื ืื ื-R ืื-Python ืืกืงื ื ืกืงืจ ืงืฆืจ ืขื ืืืื ืืืืื ืืชื ืืฉืชืืฉ
ืื ืืชื ืืขืื ืืื ืื ืืชืื ื ืชืื ืื, ืืืื ืชืืฆื ืืช ืฉืื
ืืืืื ืชืืืืจ ืขืืงืจืืื ืืื R ืืคืืืชืื
ืืื ืืืงื ืขืืืื ืืช ืืืขืืจ ื-Python ื-R, ืื ืืืืคื, ืืชื ืืื ื ืงืืืืช ืขืืงืจืืืช ืฉืืชื ืฆืจืืืื ืืฉืื ืื ืืืืื.
ืืืฉื ืืคืื ืงืฆืืืช ืืืืืื
ืืืืจ ืืขืื ืช ืืืืื ืืชืื R, ืืื ื ืฆืจืื ืืฆืืื ืืช ืฉื ืืืืืื ืืื ืืืฉืช ืืคืื ืงืฆืืืช ืฉืื. ืืจืื ืืืงืจืื ืื ืื ื ืคืืฅ ื-R, ืืื ืื ืืงืืื. ืืชื ืื ืฆืจืื ืืืืื ืืืืื ืืืื ืื ืืชื ืฆืจืื ืืืช ืืืคืื ืงืฆืืืช ืฉืื ืืงืื ืฉืื, ืืื ืคืฉืื ืืงืจืื ืื ืขื ืืื ืฆืืื ืฉื ืืืืืื ืืฉื ืืคืื ืงืฆืื. ืืืคืจืื ืืื ืฉืืืช ืืืืืืืช ืืืคืื ืงืฆืืืช ื-R ืืื ื ืงืืืชืืื ืืคืืื. package_name::function_name()
.
ื-Python, ืืืืคื, ืื ื ืืฉื ืงืืืกื ืืงืจืื ืืคืื ืงืฆืืืช ืฉื ืืืืื ืขื ืืื ืฆืืื ืืคืืจืฉ ืฉื ืฉืื. ืืืฉืจ ืืืจืืืื ืืืืื, ืืืจื ืืื ื ืืชื ืื ืฉื ืืงืืฆืจ, ืืืฉื. pandas
ืืืจื ืืื ื ืขืฉื ืฉืืืืฉ ืืฉื ืืืื pd
. ืืืฉื ืืคืื ืงืฆืืืช ืืืืื ืืื ืืจื ื ืงืืื package_name.function_name()
.
ืึฐืฉืึดืืึธื
ื-R, ืืงืืื ืืืฉืชืืฉ ืืืฅ ืืื ืืืงืฆืืช ืขืจื ืืืืืืืงื. obj_name <- value
, ืืืจืืช ืฉืืืชืจ ืกืืื ืฉืืื ืืืื, ืกืืื ืฉืืื ืืืื ื-R ืืฉืืฉ ืืขืืงืจ ืืืขืืจืช ืขืจืืื ืืืจืืืื ืืื ืฉื ืคืื ืงืฆืื.
ื-Python, ืืืงืฆืื ืืชืืฆืขืช ืื ืืจืง ืขื ืกืืื ืฉืืื ืืืื obj_name = value
.
ืืื ืืงืก
ืืฉ ืืื ืื ืืืืืื ืืฉืืขืืชืืื ืืืื. ื-R, ืืืื ืืงืก ืืชืืื ืืืื ืืืืื ืืช ืื ืืืืื ืืื ืฉืฆืืื ื ืืืืื ืืืชืงืื,
ื-Python, ืืืื ืืงืก ืืชืืื ืืืคืก ืืืืืื ืฉื ืืืจ ืืื ื ืืืื ืืช ืืืืื ื ืืืืจืื ืฉืฆืืื ืืืื ืืงืก. ืื ืขืืฆืื x[i:j]
ื-Python ืื ืืืืื ืืช ืืืืื ื j.
ืืฉื ื ืื ืืืืืื ืืืื ืืงืก ืืฉืืืื, ืืกืืืื R x[-1]
ืืืืืจ ืืช ืื ืืจืืืืื ืฉื ืืืืงืืืจ ืืืื ืืืืจืื. ื-Python, ืกืืืื ืืืื ืืืืืจ ืจืง ืืช ืืืืื ื ืืืืจืื.
ืฉืืืืช ื-OOP
R ืืืืฉื ืืช OOP ืืืจืื ืฉืื, ืืชืืชื ืขื ืื ืืืืืจ tydiverse
ืื ืืืื ืงื ืืืชืจ ืืืฉืจ pandas
. ืืืจืืช ืฉืื ืืืื ืืขืชื ืืกืืืืืงืืืืืช.
ืืงืืฆืืจ, ืืืืืืืงืืื ื-R ืืื ืืชืืืืช (ืื ืืืืจืื ืขื ืืืืงืืช S3, ืืื ืืฉ ืขืื ืืืืืฉืื ืฉื OOP ืฉืืจืื ืคืืืช ื ืคืืฆืื). ืืฉ ืจืง ืคืื ืงืฆืืืช ืืืืืืืช ืฉืืขืืืืช ืืืชื ืืฆืืจื ืฉืื ื ืืืชืื ืืืืืงื ืฉื ืืืืืืืงื.
ืฆืื ืืจืืช
ืืืื ืื ืืฉื ืฉื pandas
ืื ืื ืืืื ืืืืจื ื ืืื, ืืื ืื ื ืื ืกื ืืืกืืืจ ืืช ืืืฉืืขืืช.
ืืื ืื ืืืกืื ืืืฉืืื ืืื ืืื ืืื ืืืืฆืจ ืืคืฆืื ืืืืชืจืื ืืกืืืืช ืืขืืืื, ื ืืชื ืืืฉืชืืฉ ืืืขืื ืฆืื ืืจ. ืึธืึตื. ืืืขืืืจ ืืช ืชืืฆืืช ืืืืฉืื ืืคืื ืงืฆืื ืืืช ืืืืจืช, ืืื ืืฉืืืจ ืชืืฆืืืช ืืื ืืื.
ื ืืงื ืืช ืืืืื ืืงืื ืืืื, ืฉืื ืื ื ืืืืกื ืื ืืืฉืืื ืืื ืืื ืืืืืืืงืืื ื ืคืจืืื:
temp_object <- func1()
temp_object2 <- func2(temp_object )
obj <- func3(temp_object2 )
ืืืฆืขื ื 3 ืคืขืืืืช ืืจืฆืฃ, ืืืชืืฆืื ืฉื ืื ืืืช ื ืฉืืจื ืืืืืืืงื ื ืคืจื. ืืื ืืืขืฉื, ืื ืื ื ืื ืฆืจืืืื ืืช ืืคืฆื ืืืื ืืื ืืืื.
ืื ืืคืืื ืืืชืจ ืืจืืข, ืืื ืืืชืจ ืืืืจ ืืืฉืชืืฉื ืืงืกื.
obj <- func3(func2(func1()))
ืืืงืจื ืื, ืื ืฉืืจื ื ืชืืฆืืืช ืืืฉืื ืืื ืืื, ืืื ืงืจืืืช ืงืื ืขื ืคืื ืงืฆืืืช ืืงืื ื ืืช ืืื ืืืื ืื ื ืืื.
ื ืืื ืืกืคืจ ืืืฉืืช ืืขืืืื ื ืชืื ืื ื-R, ืืื ืืืฆืขืืช ืคืขืืืืช ืืืืืช ืืืจืืื ืฉืื ืืช.
ืฆืื ืืจืืช ืืกืคืจืืื tidyverse
ืืืืฉื ืขื ืืื ืืืคืขืื %>%
.
obj <- func1() %>%
func2() %>%
func3()
ืื ืื ื ืืืงืืื ืืช ืืชืืฆืื ืฉื ืืขืืืื func1()
ืืืืขืืืจ ืืช ืื ืืืืขืื ืืจืืฉืื ื func2()
, ืื ื ืขืืืจ ืืช ืืชืืฆืื ืฉื ืืืฉืื ืื ืืืืขืื ืืจืืฉืื func3()
. ืืืกืืคื ืฉื ืืืจ, ืื ื ืืืชืืื ืืช ืื ืืืืฉืืืื ืฉืืืฆืขื ืืชืื ืืืืืืืงื obj <-
.
ืื ืืืืืจ ืืขืื ืืืืืฉ ืืื ืืืชืจ ืืืืืื ืขื ืืื ืืื ืืื:
ะ data.table
ืฉืจืฉืจืืืช ืืฉืืฉืืช ืืฆืืจื ืืืื.
newDT <- DT[where, select|update|do, by][where, select|update|do, by][where, select|update|do, by]
ืืื ืืืช ืืืกืืืจืืื ืืืจืืืขืื ื ืืชื ืืืฉืชืืฉ ืืชืืฆืื ืฉื ืืคืขืืื ืืงืืืืช.
ะ pandas
ืคืขืืืืช ืืืื ืืืคืจืืืช ืื ืงืืื.
obj = df.fun1().fun2().fun3()
ืึธืึตื. ืื ืื ื ืืืงืืื ืืช ืืฉืืืื ืฉืื ื df ืืืืฉืชืืฉ ืืฉืืื ืฉืื fun1()
, ืืืืจ ืืื ืื ื ืืืืฉืืื ืืช ืืฉืืื ืขื ืืชืืฆืื ืืืชืงืืืช fun2()
ืืืจื fun3()
. ืืชืืฆืื ืืืชืงืืืช ื ืฉืืจืช ืืืืืืืงื obj .
ืืื ื ืืืืข
ืืื ื ื ืชืื ืื ื-R ืื-Python ืืืืื, ืื ืืฉ ืืื ืฉืืืช ืฉืื ืื.
ืชืืืืจ
ืฉื ื-R
ืฉื ืืคืืืชืื/ืคื ืืืช
ืืื ื ืืฉืืืื
data.frame, data.table, tibble
DataFrame
ืจืฉืืืช ืขืจืืื ืื ืืืืืืช
ืืงืืืจ
ืกืืจื ืืคื ืืืช ืื ืจืฉืืื ืืคืืืชืื ืืืืจ
ืืื ื ืจื ืืคืืกื ืฉืืื ื ืืืืื
ืจืฉืืื
ืืืืื (ืืืงื)
ื ืกืชืื ืขื ืืื ืชืืื ืืช ืืืจืืช ืืืืืืื ืืชืืืืจ ืืืื.
ืืื ืืืืื ืขื ืืืืืืืช ืืื ื ืฉืชืืฉ
ืจืืฉืืช, ืืกืคืจ ืืื ืืขื ืขื ืืืืืืืช ืฉืชืืืจื ืืืืื ืืืืจ ืื.
ืืกืืืจ
ืืชืจ ืจืฉืื:
ืืกืคืจืืื tidyverse
ื ืืชื ืขื ืืื Hedley Wickham, ืืืขื ืืืงืจ ืืืืจ ื-RStudio. tidyverse
ืืืจืื ืืกื ืืจืฉืื ืฉื ืืืืืืช ืืืคืฉืืืช ืืช ืขืืืื ืื ืชืื ืื, 5 ืืื ืืืืืืช ืืขืฉืจืช ืืืืจืืืช ืืืืืืืืช ืืืืืจ CRAN.
ืืืืช ืืกืคืจืืื ืืืจืืืช ืืืืืืืืช ืืืืืช: ggplot2
, dplyr
, tidyr
, readr
, purrr
, tibble
, stringr
, forcats
. ืื ืืืช ืืืืืืืืช ืืืื ื ืืขืื ืืคืชืืจ ืืขืื ืกืคืฆืืคืืช. ืืืืืื dplyr
ื ืืฆืจ ืขืืืจ ืื ืืคืืืฆืื ืฉื ื ืชืื ืื, tidyr
ืืืืื ืืช ืื ืชืื ืื ืืฆืืจื ืืกืืืจืช, stringr
ืืคืฉื ืืช ืืขืืืื ืขื ืืืจืืืืช, ื ggplot2
ืืื ืืื ืืืืื ืืคืืคืืืจืืื ืืืืชืจ ืืืืืืืช ื ืชืื ืื.
ืืืชืจืื tidyverse
ืืื ืชืืืืจ ืืคืฉืืืช ืืืงื ืืงืจืืื, ืฉืืืื ืืืืื ืื ืจืืื ืืฉืคืช ืืฉืืืืชืืช ืฉื SQL.
ืืืืช ื ืชืื ืื
ืึฐืึทืึผึตืจ data.table
ืืื ืืื ืืื ื-H2O.ai.
ืืืืฆืื ืืจืืฉืื ื ืฉื ืืกืคืจืืื ืืชืจืืฉื ื-2006.
ืชืืืืจ ืืืืืื ืืื ื ื ืื ืืื ื tidyverse
ืืืืืืจ ืืืชืจ ืืกืืจืืช ื ืชืื ืื ืงืืืกืืืช ื-R, ืื ืืืงืืื ืืืจืืืช ืืฉืืขืืชืืช ืืคืื ืงืฆืืื ืืืืช.
ืื ืืื ืืคืืืฆืืืช ืขื ืืืืื ืืืืืื ืื ืืชืืืจืืช ืืกืืืจืืื ืืจืืืขืื, ืืื ืืชื ืืชืจืื ืืช ืืชืืืืจ data.table
ื-SQL ืืชื ืืงืื ืืฉืื ืืื: data.table[ WHERE, SELECT, GROUP BY ]
ืืืืืง ืฉื ืืืืื ืื ืืื ืืืืจืืช ืืขืืืื ืฉื ืืืืืืช ืืืืืืช ืฉื ื ืชืื ืื.
ืืืื ืคื ืื
ืืชืจ ืจืฉืื:
ืฉืื ืฉื ืืกืคืจืืื ืืืืข ืืืืื ื ืืืงืื ืืืืจื "ื ืชืื ื ืคืื ื", ืืืฉืืฉ ืืชืืืืจ ืงืืืฆืืช ืืืื ืืช ืจื-ืืืืืืช ืฉื ืืืืข.
ืึฐืึทืึผึตืจ pandas
ืืื ืืืืจืืงืื ืืืก ืืงืื ื.
ืืฉืื ืืืืข ืื ืืชืื ื ืชืื ืื ื-Python, ืฉืืื pandas
ืื. ืืืืื ืจื ืชืืืืชืืช ืืืื, ืืจืื ืืืืื, ืืืืคืฉืจืช ืื ืืืฆืข ืื ืื ืืคืืืฆืื ืขื ื ืชืื ืื, ืืื ืืืขืื ืช ื ืชืื ืื ืืื ืืงืืจ ืืขื ืืืืืื.
ืืชืงื ืช ืืืืืืช ื ืืกืคืืช
ืืืืืืืช ืื ืืื ืืช ืืืืืจ ืื ืืื ื ืืืืืืช ืืืคืฆืืช ืืืกืืกืืืช ืฉื R ื-Python. ืืืจืืช ืฉืืฉ ืืืืจื ืงืื ื, ืื ืืชืงื ืช ืืช ืืคืฆืช Anaconda, ืื ืืชืงื ืื ืืกืฃ pandas
ืืื ื ื ืืจืฉ.
ืืชืงื ืช ืืืืืืช ื-R
ืื ืคืชืืช ืืช ืกืืืืช ืืคืืชืื ืฉื RStudio ืืคืืืช ืคืขื ืืืช, ืื ืจืื ืฉืืชื ืืืจ ืืืืข ืืื ืืืชืงืื ืืช ืืืืืื ืื ืืจืฉืช ื-R. ืืื ืืืชืงืื ืืืืืืช, ืืฉืชืืฉ ืืคืงืืื ืืจืืืื install.packages()
ืขื ืืื ืืคืขืืชื ืืฉืืจืืช ื-R ืขืฆืื.
# ัััะฐะฝะพะฒะบะฐ ะฟะฐะบะตัะพะฒ
install.packages("vroom")
install.packages("readr")
install.packages("dplyr")
install.packages("data.table")
ืืืืจ ืืืชืงื ื ืืฉ ืืืืจ ืืช ืืืืืืืช, ืฉืขืืืจื ืืจืื ืืืงืจืื ื ืขืฉื ืฉืืืืฉ ืืคืงืืื library()
.
# ะฟะพะดะบะปััะตะฝะธะต ะธะปะธ ะธะผะฟะพัั ะฟะฐะบะตัะพะฒ ะฒ ัะฐะฑะพัะตะต ะพะบััะถะตะฝะธะต
library(vroom)
library(readr)
library(dplyr)
library(data.table)
ืืชืงื ืช ืืืืืืช ืืคืืืชืื
ืื ืื ืืืชืงื ืืฆืื Python ืืืืจ, ืื pandas
ืืชื ืฆืจืื ืืืชืงืื ืืืชื ืืื ืืช. ืคืชื ืฉืืจืช ืคืงืืื, ืื ืืกืืฃ, ืืืชืื ืืืขืจืืช ืืืคืขืื ืฉืื ืืืื ืืช ืืคืงืืื ืืืื.
pip install pandas
ืืืืจ ืืื ื ืืืืจ ืืคืืืชืื ืื ืืืื ืืช ืืืืืื ืืืืชืงื ืช ืขื ืืคืงืืื import
.
import pandas as pd
ืืืขื ื ืชืื ืื
ืืจืืืช ื ืชืื ืื ืืื ืืื ืืฉืืืื ืืืฉืืืื ืืืืชืจ ืื ืืชืื ื ืชืื ืื. ืื Python ืืื R, ืื ืชืจืฆื, ืืกืคืงืื ืื ืืืืื ืืืืช ื ืจืืืืช ืืืฉืื ื ืชืื ืื ืืื ืืงืืจืืช: ืงืืฆืื ืืงืืืืื, ืงืืฆืื ืืืืื ืืจื ื, ืืชืจื ืืื ืืจื ื, ืื ืืื ื ืืกืื ื ืชืื ืื.
ืืืืจื ืืืืืจ ื ืฉืชืืฉ ืืืกืคืจ ืืขืจืื ื ืชืื ืื:
- ืฉืชื ืืืจืืืช ืืืืื ืื ืืืืืงืก.
- ืืขืจื ื ืชืื ืื ืฉื ื ืืกืขืื ืฉื ืืืืื ืืง.
ืื ืื ืชืื ืื ืืฆืื
ืืขืื ืช ื ืชืื ืื ืืชืื R: tidyverse, vroom, readr
ืืืขืื ืช ื ืชืื ืื ืืกืคืจืืื tidyverse
ืืฉ ืฉืชื ืืืืืืช: vroom
, readr
. vroom
ืืืืจื ื ืืืชืจ, ืืื ืืขืชืื ืืืชืื ืฉืืืืืืืช ืืฉืืืื.
ืฆืืืื ื vroom
.
vroom ืืขืืืช ืงืืจื
ืื ืืฉืืจืืจ ืฉืvroom
ืืชืืืื ืreadr
? ืืขืช ืขืชื ืื ื ืืชืื ื ืื ืืชืช ืืฉืชื ืืืืืืืช ืืืชืคืชื ืื ืคืจื, ืื ืกืืืจ ืืื ืื ืฉื ืืื ืืช ืืืืืืืช ืืขืชืื. ืืกืจืื ืืื ืืงืจืืื ืืขืฆืื ืืช ืฉื vroom ืืื ืฉืื ื ืืชื ืืืืื ืขื ืืขืืืช ื ืชืื ืื ืืกืืืืืช ืืจืืฉ, ืื ืฉืืืจื ืืืืื ืืืืชืจ ืืืื ืืืชื ืืืจืฉืช ืืืฉืื.vroom ืืขืืืช ืงืืจื
ืื ืืืฉืืขืืช ืฉื ืฉืืจืืจ?vroom
ืขืืืจreadr
? ืืจืืข ืื ืื ื ืืชืื ื ืื ืืคืชื ืืช ืฉืชื ืืืืืืืช ืื ืคืจื, ืืื ืื ืจืื ืฉื ืฉืื ืืืชื ืืขืชืื. ืืื ืืืกืจืื ืืช ืฉื ืงืจืืื ืขืฆืื ืืชvroom
ืืื ืฉืื ื ืืชื ืืืืื ืขื ืืขืืืช ืืกืืืืืช ืื ืชืื ืื ืืจืืฉ, ืื ืืชื ืฆืจืื ืืืฉืื ืืื ืืฉืื ืืืชื ืืฆืืจื ืืืืื ืืืืชืจ.
ืืืืืจ ืื ื ืกืชืื ืขื ืฉืชื ืืืืืืช ืืขืื ืช ืื ืชืื ืื:
ืืืขื ื ืชืื ืื ืืชืื ืืืืืช R: vroom
# install.packages("vroom")
library(vroom)
# ะงัะตะฝะธะต ะดะฐะฝะฝัั
## vroom
ga_nov <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")
ืืืขื ื ืชืื ืื ืืชืื R: readr
# install.packages("readr")
library(readr)
# ะงัะตะฝะธะต ะดะฐะฝะฝัั
## readr
ga_nov <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")
ืืืืืื vroom
, ืืื ืงืฉืจ ืืคืืจืื ืื ืชืื ืื csv / tsv, ืืืขืื ื ืืชืืฆืขืช ืขื ืืื ืคืื ืงืฆืื ืืขืืช ืืืชื ืฉื vroom()
, ืืืืืื readr
ืื ื ืืฉืชืืฉืื ืืคืื ืงืฆืื ืฉืื ื ืขืืืจ ืื ืคืืจืื read_tsv()
ะธ read_csv()
.
ืืขืื ืช ื ืชืื ืื ืืชืื R: data.table
ะ data.table
ืืฉ ืคืื ืงืฆืื ืืืขืื ืช ื ืชืื ืื fread()
.
ืืืขื ื ืชืื ืื ืืชืื R: data.table ืืืืืช
# install.packages("data.table")
library(data.table)
## data.table
ga_nov <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")
ืืืขื ื ืชืื ืื ืืคืืืชืื: ืคื ืืืช
ืื ื ืฉืืื ืขื ืืืืืืช R, ืื ืืืงืจื ืื ืืชืืืืจ ืืื ืืงืจืื ืืืืชืจ pandas
ืจืฆืื readr
, ืื pandas
ืืืื ืืืงืฉ ื ืชืื ืื ืืื ืืงืื, ืืืฉ ืืฉืคืื ืฉืืื ืฉื ืคืื ืงืฆืืืช ืืืืืื ืืื read_*()
.
read_csv()
read_excel()
read_sql()
read_json()
read_html()
ืืขืื ืคืื ืงืฆืืืช ืจืืืช ืฉื ืืขืื ืืงืจืื ื ืชืื ืื ืืคืืจืืืื ืฉืื ืื. ืืื ืืขื ืืื ื ื ืื ืืกืคืืง read_table()
ืื read_csv()
ืืืืฆืขืืช ืืืขืื ืกืคืืืืจ ืืื ืืฆืืื ืืช ืืคืจืื ืืขืืืืืช.
ืืืขื ื ืชืื ืื ืืคืืืชืื: ืคื ืืืช
import pandas as pd
ga_nov = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_nowember.csv", sep = "t")
ga_dec = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_december.csv", sep = "t")
titanic = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/titanic.csv")
ืืฆืืจืช ืืกืืจืืช ื ืชืื ืื
ืืืืื ืืืืจ, ืืฉืจ ืืขืืกื ื, ืืฉ ืฉืื ืึดืื, ืืืืืกื ืืช ืืืื ืืืืืจ ืฉื ืื ืืกืข.
ืืื ืืืฆืื ื ืืื ืืืชืจ ืฉื ื ืชืื ืื ืืืื ืืื ืฉื ืืืืจ ืื ืืกืข, ืืืื ืืืฉืชืืฉ ืืฉื ืืื ืืงืื ืืืืืจ.
ืืฉื ืื, ื ืืฆืืจ ืกืคืจืืื ืงืื ื, ืืืื ืฉืื ืืืื ืจืง 2 ืขืืืืืช (ืงืื ืืฉื ืืืืจ) ื-2 ืฉืืจืืช, ืืืชืืื.
ืืฆืืจืช ืืกืืจืช ื ืชืื ืื ื-R: tidyverse, dplyr
ืืืืืื ืฉื ืืงืื ืฉืืืื, ืื ื ืืืฆืจืื ืืช ืืกืืจืช ืื ืชืื ืื ืืจืฆืืื ืืืืฆืขืืช ืืคืื ืงืฆืื tibble()
.
ืืฆืืจืช ืืกืืจืช ื ืชืื ืื ื-R: dplyr
## dplyr
### ัะพะทะดะฐัะผ ัะฟัะฐะฒะพัะฝะธะบ
gender <- tibble(id = c(1, 2),
gender = c("female", "male"))
ืืฆืืจืช ืืกืืจืช ื ืชืื ืื ื-R: data.table
ืืฆืืจืช ืืกืืจืช ื ืชืื ืื ื-R: data.table
## data.table
### ัะพะทะดะฐัะผ ัะฟัะฐะฒะพัะฝะธะบ
gender <- data.table(id = c(1, 2),
gender = c("female", "male"))
ืืฆืืจืช ืืกืืจืช ื ืชืื ืื ื-Python: pandas
ะ pandas
ืืฆืืจืช ืืกืืจืืช ืืชืืฆืขืช ืืืกืคืจ ืฉืืืื, ืชืืืื ืื ื ืืืฆืจืื ืืืืื, ืืืืืจ ืืื ืื ื ืืืืจืื ืืช ืืืืืื ื-dataframe.
ืืฆืืจืช ืืกืืจืช ื ืชืื ืื ื-Python: pandas
# ัะพะทะดะฐัะผ ะดะฐัะฐ ััะตะนะผ
gender_dict = {'id': [1, 2],
'gender': ["female", "male"]}
# ะฟัะตะพะฑัะฐะทัะตะผ ัะปะพะฒะฐัั ะฒ ะดะฐัะฐััะตะนะผ
gender = pd.DataFrame.from_dict(gender_dict)
ืืืืจืช ืขืืืืืช
ืืืืืืืช ืฉืืชื ืขืืื ืืืชื ืขืฉืืืืช ืืืืื ืขืฉืจืืช ืืืคืืื ืืืืช ืขืืืืืช ืฉื ื ืชืื ืื. ืืื ืืื ืืืฆืข ื ืืชืื, ืืืื, ืืื ื ืฆืจืื ืืช ืื ืืขืืืืืช ืืืืื ืืช ืืืืืช ืืืงืืจ.
ืืื, ืืืช ืืคืขืืืืช ืืจืืฉืื ืืช ืฉืชืืฆืขื ืขื ืืืืช ืืืงืืจ ืืื ืื ืงืืช ืืืชื ืืืืืข ืืืืชืจ ืืืคื ืืช ืืช ืืืืืจืื ืฉืืืืข ืื ืชืืคืก.
ืืืืจืช ืขืืืืืช ื-R: tidyverse, dplyr
ืชืืืืจ dplyr
ืืืื ืืืื ืืฉืคืช ืืฉืืืืชืืช SQL, ืื ืืชื ืืืืจ ืืืชื ืชืืื ืืฉืืื ืืืืืื ืืื ืืืืืจืืช.
ืืื ืืืืืจ ืขืืืืืช, ืืฉืชืืฉ ืืคืื ืงืฆืื select()
.
ืืืื ืืืืืืืช ืืงืื ืฉืืืืฆืขืืชื ื ืืชื ืืืืืจ ืขืืืืืช ืืืจืืื ืืืืืช:
- ืคืืจืื ืฉืืืช ืืขืืืืืช ืื ืืจืฉืืช
- ืขืืื ืืฉืืืช ืืขืืืืืช ืืืืฆืขืืช ืืืืืืื ืจืืืืจืืื
- ืืคื ืกืื ื ืชืื ืื ืื ืื ืืืคืืื ืืืจ ืฉื ืื ืชืื ืื ืืืืืืื ืืขืืืื
ืืืืจืช ืขืืืืืช ื-R: dplyr
# ะัะฑะพั ะฝัะถะฝัั
ััะพะปะฑัะพะฒ
## dplyr
### ะฒัะฑัะฐัั ะฟะพ ะฝะฐะทะฒะฐะฝะธั ััะพะปะฑัะพะฒ
select(ga_nov, date, source, sessions)
### ะธัะบะปััั ะฟะพ ะฝะฐะทะฒะฐะฝะธั ััะพะปะฑัะพะฒ
select(ga_nov, -medium, -bounces)
### ะฒัะฑัะฐัั ะฟะพ ัะตะณัะปััะฝะพะผั ะฒััะฐะถะตะฝะธั, ััะพะฑัั ะธะผะตะฝะฐ ะบะพัะพััั
ะทะฐะบะฐะฝัะธะฒะฐัััั ะฝะฐ s
select(ga_nov, matches("s$"))
### ะฒัะฑัะฐัั ะฟะพ ััะปะพะฒะธั, ะฒัะฑะธัะฐะตะผ ัะพะปัะบะพ ัะตะปะพัะธัะปะตะฝะฝัะต ััะพะปะฑัั
select_if(ga_nov, is.integer)
ืืืืจืช ืขืืืืืช ื-R: data.table
ืืืชื ืคืขืืืืช ื data.table
ืืืืฆืขืืช ืืฆืืจื ืืขื ืฉืื ื, ืืชืืืืช ืืืืืจ ืกืืคืงืชื ืชืืืืจ ืฉื ืืืื ืืืขืื ืื ื ืืฆืืื ืืชืื ืกืืืจืืื ืืจืืืขืื data.table
.
DT[i,j,by]
ืืืคื:
ืื ื - ืืืคื, ืืืืืจ. ืกืื ืื ืืคื ืฉืืจืืช
j - ืืืจ|ืขืืื|ืขืฉื, ืืืืืจ. ืืืืจืช ืขืืืืืช ืืืืจืชื
ืืคื - ืงืืืืฅ ื ืชืื ืื
ืืืืจืช ืขืืืืืช ื-R: data.table
## data.table
### ะฒัะฑัะฐัั ะฟะพ ะฝะฐะทะฒะฐะฝะธั ััะพะปะฑัะพะฒ
ga_nov[ , .(date, source, sessions) ]
### ะธัะบะปััั ะฟะพ ะฝะฐะทะฒะฐะฝะธั ััะพะปะฑัะพะฒ
ga_nov[ , .SD, .SDcols = ! names(ga_nov) %like% "medium|bounces" ]
### ะฒัะฑัะฐัั ะฟะพ ัะตะณัะปััะฝะพะผั ะฒััะฐะถะตะฝะธั
ga_nov[, .SD, .SDcols = patterns("s$")]
ืืฉืชื ื .SD
ืืืคืฉืจ ืื ืืืฉืช ืืื ืืขืืืืืช, ื .SDcols
ืืกื ื ืืช ืืขืืืืืช ืื ืืจืฉืืช ืืืืฆืขืืช ืืืืืืื ืจืืืืจืืื, ืื ืคืื ืงืฆืืืช ืืืจืืช ืืื ืืกื ื ืืช ืฉืืืช ืืขืืืืืช ืืืจืืฉืื ืื.
ืืืืจืช ืขืืืืืช ืืคืืืชืื, ืคื ืืืช
ืืื ืืืืืจ ืขืืืืืช ืืคื ืฉื ื pandas
ืืกืคืืง ืืกืคืง ืจืฉืืื ืฉื ืฉืืืชืืื. ืืืื ืืืืืจ ืื ืื ืืืืื ืขืืืืืช ืืคื ืฉื ืืืืฆืขืืช ืืืืืืื ืจืืืืจืืื, ืขืืื ืืืฉืชืืฉ ืืคืื ืงืฆืืืช drop()
ะธ filter()
, ืืืืขืื ืฆืืจ=1, ืฉืืืืฆืขืืชื ืืชื ืืฆืืื ืฉืืฉ ืฆืืจื ืืขืื ืขืืืืืช ืืื ืฉืืจืืช.
ืืื ืืืืืจ ืฉืื ืืคื ืกืื ื ืชืื ืื, ืืฉืชืืฉ ืืคืื ืงืฆืื select_dtypes()
, ืืืชืื ืืืืืืื ืืืืื ืื ืืืืฆืื ืืืขืืืจ ืจืฉืืื ืฉื ืกืืื ื ืชืื ืื ืืชืืืืื ืืืืื ืฉืืืช ืขืืื ืืืืืจ.
ืืืืจืช ืขืืืืืช ืืคืืืชืื: ืคื ืืืช
# ะัะฑะพั ะฟะพะปะตะน ะฟะพ ะฝะฐะทะฒะฐะฝะธั
ga_nov[['date', 'source', 'sessions']]
# ะัะบะปััะธัั ะฟะพ ะฝะฐะทะฒะฐะฝะธั
ga_nov.drop(['medium', 'bounces'], axis=1)
# ะัะฑัะฐัั ะฟะพ ัะตะณัะปััะฝะพะผั ะฒััะฐะถะตะฝะธั
ga_nov.filter(regex="s$", axis=1)
# ะัะฑัะฐัั ัะธัะปะพะฒัะต ะฟะพะปั
ga_nov.select_dtypes(include=['number'])
# ะัะฑัะฐัั ัะตะบััะพะฒัะต ะฟะพะปั
ga_nov.select_dtypes(include=['object'])
ืกืื ืื ืฉืืจืืช
ืืืืืื, ืืืืช ืืืงืืจ ืขืฉืืื ืืืืื ืืกืคืจ ืฉื ืื ืฉื ื ืชืื ืื, ืื ืขืืื ืื ืชื ืจืง ืืช ืืืืืฉ ืืืืจืื. ืฉืื, ืงืืืื ื ืืกืคืื ืืืื ืืช ืชืืืื ืขืืืื ืื ืชืื ืื ืืืกืชืื ืืช ืืืืจืื ืืืืฉื.
ืกืื ืื ืฉืืจืืช ื-R: tydyverse, dplyr
ะ dplyr
ืืคืื ืงืฆืื ืืฉืืฉืช ืืกืื ืื ืฉืืจืืช filter()
. ืื ืืืงื ืืกืืจืช ื ืชืื ืื ืืชืืจ ืืืจืืืื ื ืืจืืฉืื, ืืื ืืชื ืืคืจื ืืช ืชื ืื ืืกืื ืื.
ืืขืช ืืชืืืช ืืืืืืื ืืืืืื ืืกืื ืื ืืืื, ืืืงืจื ืื, ืฆืืื ืืช ืฉืืืช ืืขืืืืืช ืืื ืืจืืืืช ืืืืื ืืืืจืื ืขื ืฉื ืืืืื.
ืืขืช ืฉืืืืฉ ืืืกืคืจ ืืืืืืื ืืืืืื ืืกืื ืื, ืืฉืชืืฉ ืืืืคืจืืืจืื ืืืืื:
- & ืื ืคืกืืง - ืืืืื ื AND
- | - OR ืืืืื ื
ืืกื ื ืฉืืจืืช ื-R: dplyr
# ัะธะปัััะฐัะธั ัััะพะบ
## dplyr
### ัะธะปัััะฐัะธั ัััะพะบ ะฟะพ ะพะดะฝะพะผั ััะปะพะฒะธั
filter(ga_nov, source == "google")
### ัะธะปััั ะฟะพ ะดะฒัะผ ััะปะพะฒะธัะผ ัะพะตะดะธะฝัะฝะฝัะผ ะปะพะณะธัะตัะบะธะผ ะธ
filter(ga_nov, source == "google" & sessions >= 10)
### ัะธะปััั ะฟะพ ะดะฒัะผ ััะปะพะฒะธัะผ ัะพะตะดะธะฝัะฝะฝัะผ ะปะพะณะธัะตัะบะธะผ ะธะปะธ
filter(ga_nov, source == "google" | sessions >= 10)
ืกืื ืื ืฉืืจืืช ื-R: data.table
ืืคื ืฉืืืจ ืืชืืชื ืืืขืื, ื data.table
ืชืืืืจ ืืืจืช ื ืชืื ืื ืืืงืฃ ืืกืืืจืืื ืืจืืืขืื.
DT[i,j,by]
ืืืคื:
ืื ื - ืืืคื, ืืืืืจ. ืกืื ืื ืืคื ืฉืืจืืช
j - ืืืจ|ืขืืื|ืขืฉื, ืืืืืจ. ืืืืจืช ืขืืืืืช ืืืืจืชื
ืืคื - ืงืืืืฅ ื ืชืื ืื
ืืืจืืืื ื ืืฉืืฉ ืืกืื ืื ืฉืืจืืช i, ืืขื ืืืืงืื ืืจืืฉืื ืืกืืืจืืื ืืจืืืขืื.
ืืืืฉื ืืขืืืืืช ืืื ืืืืืืืื ืืืืืื ืืื ืืจืืืืช ืืืื ืฆืืื ืฉื ืืืืื.
ืืืืืืื ืืืืืื ืงืฉืืจืื ืื ืืื ืืืืชื ืืืคื ืืื ื dplyr
ืืืืฆืขืืช ืืืคืขืืืื & ื-|.
ืกืื ืื ืฉืืจืืช ื-R: data.table
## data.table
### ัะธะปัััะฐัะธั ัััะพะบ ะฟะพ ะพะดะฝะพะผั ััะปะพะฒะธั
ga_nov[source == "google"]
### ัะธะปััั ะฟะพ ะดะฒัะผ ััะปะพะฒะธัะผ ัะพะตะดะธะฝัะฝะฝัะผ ะปะพะณะธัะตัะบะธะผ ะธ
ga_nov[source == "google" & sessions >= 10]
### ัะธะปััั ะฟะพ ะดะฒัะผ ััะปะพะฒะธัะผ ัะพะตะดะธะฝัะฝะฝัะผ ะปะพะณะธัะตัะบะธะผ ะธะปะธ
ga_nov[source == "google" | sessions >= 10]
ืืืชืจื ืกืื ืื ืืคืืืชืื: ืคื ืืืช
ืกื ื ืืคื ืฉืืจืืช ื pandas
ืืืื ืืกืื ืื ืคื ืืื data.table
, ืืืื ื ืขืฉื ืืกืืืจืืื ืืจืืืขืื.
ืืืงืจื ืื, ืืืืฉื ืืขืืืืืช ืืชืืฆืขืช ืืืืจื ืขื ืืื ืฆืืื ืฉื ืืกืืจืช ืื ืชืื ืื; ืื ื ืืชื ืืฆืืื ืืช ืฉื ืืขืืืื ืื ืืืจืืืืช ืืกืืืจืืื ืืจืืืขืื (ืืืืื df['col_name']
), ืื ืืื ืืจืืืืช ืืืืจ ืืชืงืืคื (ืืืืื df.col_name
).
ืื ืืชื ืฆืจืื ืืกื ื ืืกืืจืช ื ืชืื ืื ืืคื ืืกืคืจ ืชื ืืื, ืื ืชื ืื ืืืื ืืืืืช ืืืืงื ืืกืืืจืืื. ืชื ืืื ืืืืืื ืงืฉืืจืื ืื ืืื ืขื ืืื ืืคืขืืืื &
ะธ |
.
ืืืชืจื ืกืื ืื ืืคืืืชืื: ืคื ืืืช
# ะคะธะปัััะฐัะธั ัััะพะบ ัะฐะฑะปะธัั
### ัะธะปัััะฐัะธั ัััะพะบ ะฟะพ ะพะดะฝะพะผั ััะปะพะฒะธั
ga_nov[ ga_nov['source'] == "google" ]
### ัะธะปััั ะฟะพ ะดะฒัะผ ััะปะพะฒะธัะผ ัะพะตะดะธะฝัะฝะฝัะผ ะปะพะณะธัะตัะบะธะผ ะธ
ga_nov[(ga_nov['source'] == "google") & (ga_nov['sessions'] >= 10)]
### ัะธะปััั ะฟะพ ะดะฒัะผ ััะปะพะฒะธัะผ ัะพะตะดะธะฝัะฝะฝัะผ ะปะพะณะธัะตัะบะธะผ ะธะปะธ
ga_nov[(ga_nov['source'] == "google") | (ga_nov['sessions'] >= 10)]
ืงืืืืฅ ืืฆืืืจื ืฉื ื ืชืื ืื
ืืืช ืืคืขืืืืช ืื ืคืืฆืืช ืืืืชืจ ืื ืืชืื ื ืชืื ืื ืืื ืงืืืืฅ ืืืืจืืฆืื.
ืืชืืืืจ ืืืืฆืืข ืคืขืืืืช ืืื ืืคืืืจ ืขื ืคื ื ืื ืืืืืืืช ืฉืื ื ืืืืงืื.
ืืืงืจื ืื, ื ืืงื ืืกืืจืช ื ืชืื ืื ืืืืืื ืืืืจ, ืืืฉื ืืช ืืืกืคืจ ืืืขืืืช ืืืืืฆืขืช ืฉื ืืจืืืกืื ืืืชืื ืืืืืงืช ืืืงืชื.
ืงืืืืฅ ืืฆืืืจืช ื ืชืื ืื ื-R: tidyverse, dplyr
ะ dplyr
ืืคืื ืงืฆืื ืืฉืืฉืช ืืงืืืืฅ group_by()
, ืืืฆืืืจื summarise()
. ืืืขืฉื, dplyr
ืืฉ ืืฉืคืื ืฉืืื ืฉื ืคืื ืงืฆืืืช summarise_*()
, ืืื ืืืจืช ืืืืืจ ืืื ืืื ืืืฉืืืช ืืช ืืชืืืืจ ืืืกืืกื, ืื ืื ื ืืื ืก ืื'ืื ืื ืืื.
ืคืื ืงืฆืืืช ืฆืืืจื ืืกืืกืืืช:
sum()
- ืกืืืืmin()
/max()
- ืขืจื ืืื ืืืื ืืืงืกืืืืmean()
- ืืืืฆืขmedian()
- ืืฆืืืlength()
- ืืืืช
ืงืืืืฅ ืืฆืืืจื ืืจ': ืืคืืืจ
## dplyr
### ะณััะฟะฟะธัะพะฒะบะฐ ะธ ะฐะณัะตะณะฐัะธั ัััะพะบ
group_by(titanic, Pclass) %>%
summarise(passangers = length(PassengerId),
avg_price = mean(Fare))
ืืชืคืงื group_by()
ืืขืืจื ื ืืช ืืืืื ืืืืขืื ืืจืืฉืื ืืืืจ, ืืืืืจ ืืื ืฆืืื ืืช ืืฉืื Pclass, ืฉืืคืื ื ืงืืฅ ืืช ืืฉืืืื ืฉืื ื. ืืชืืฆืื ืฉื ืคืขืืื ืื ืืืืฆืขืืช ืืืืคืจืืืจ %>%
ืืืขืืจ ืืืจืืืื ื ืืจืืฉืื ืืคืื ืงืฆืื summarise()
, ืืืืกืืคื ืขืื 2 ืฉืืืช: ื ืืกืขืื ะธ avg_price. ืืจืืฉืื, ืืืืฆืขืืช ืืคืื ืงืฆืื length()
ืืืฉื ืืช ืืกืคืจ ืืืจืืืกืื, ืืืฉื ื ืืืืฆืขืืช ืืคืื ืงืฆืื mean()
ืงืืื ืืช ืืืืจ ืืืจืืืก ืืืืืฆืข.
ืงืืืืฅ ืืฆืืืจืช ื ืชืื ืื ื-R: data.table
ะ data.table
ืืืจืืืื ื ืืฉืืฉ ืืฆืืืจื j
ืฉืืฉ ืื ืืืงืื ืฉื ื ืืกืืืจืืื ืืจืืืขืื, ืืืงืืืืฅ by
ืื keyby
, ืฉืืฉ ืืื ืืช ืืืืงืื ืืฉืืืฉื.
ืจืฉืืืช ืคืื ืงืฆืืืช ืืฆืืืจื ืืืงืจื ืื ืืื ืืื ืืืชืืืจืช ื dplyr
, ืื ืืื ืื ืคืื ืงืฆืืืช ืืชืืืืจ R ืืืกืืกื.
ืงืืืืฅ ืืฆืืืจื ื-R: data.table
## data.table
### ัะธะปัััะฐัะธั ัััะพะบ ะฟะพ ะพะดะฝะพะผั ััะปะพะฒะธั
titanic[, .(passangers = length(PassengerId),
avg_price = mean(Fare)),
by = Pclass]
ืงืืืืฅ ืืฆืืืจืช ื ืชืื ืื ืืคืืืชืื: ืคื ืืืช
ืืงืืฅ ืคื ืืื pandas
ืืืื ื dplyr
, ืืื ืืฆืืืจื ืื ืืืื ื dplyr
ืื ืขื data.table
.
ืืื ืืงืืฅ, ืืฉืชืืฉ ืืฉืืื groupby()
, ืฉืืืื ืืชื ืฆืจืื ืืืขืืืจ ืจืฉืืื ืฉื ืขืืืืืช ืฉืืคืืื ืชืงืืืฅ ืืกืืจืช ืื ืชืื ืื.
ืืฆืืืจื ื ืืชื ืืืฉืชืืฉ ืืฉืืื agg()
ืฉืืงืื ืืืืื. ืืคืชืืืช ืืืืืื ืื ืืขืืืืืช ืฉืขืืืื ืชืืื ืืช ืคืื ืงืฆืืืช ืืฆืืืจื, ืืืขืจืืื ืื ืฉืืืช ืคืื ืงืฆืืืช ืืฆืืืจื.
ืคืื ืงืฆืืืช ืฆืืืจื:
sum()
- ืกืืืืmin()
/max()
- ืขืจื ืืื ืืืื ืืืงืกืืืืmean()
- ืืืืฆืขmedian()
- ืืฆืืืcount()
- ืืืืช
ืคืื ืงืฆืื reset_index()
ืืืืืื ืืืื ืืื ืืฉืืฉ ืืืืคืืก ืืื ืืงืกืื ืืงืื ื ืื ืฉ pandas
ืืจืืจืช ืืืืื ืืื ืืืืจ ืฆืืืจืช ื ืชืื ืื.
ืกืื ืืืคืฉืจ ืื ืืขืืืจ ืืฉืืจื ืืืื.
ืงืืืืฅ ืืฆืืืจื ืืคืืืชืื: ืคื ืืืช
# ะณััะฟะฟะธัะพะฒะบะฐ ะธ ะฐะณัะตะณะฐัะธั ะดะฐะฝะฝัั
titanic.groupby(["Pclass"]).
agg({'PassengerId': 'count', 'Fare': 'mean'}).
reset_index()
ืฆืืจืืฃ ืื ืื ืฉื ืืืืืืช
ืคืขืืื ืฉืื ืืชื ืืฆืืจืฃ ืืฉืชื ืืืืืืช ืื ืืืชืจ ืืืืชื ืืื ื. ืื ืชืื ืื ืฉืืขืืื ื ืืืืืื ืืืืืืช ga_nov ะธ ga_dec. ืืืืืืช ืืื ืืืืช ืืืื ื, ืืืืืจ. ืืฉ ืืช ืืืชื ืขืืืืืช, ืืืช ืกืืื ืื ืชืื ืื ืืขืืืืืช ืืื.
ืืืื ืืขืืื ืืืืื ืื ืืืืืงืก ืืืืืฉืื ื ืืืืืจ ืืืฆืืืจ, ืืืืง ืื ื ืฉืื ืืช ืื ืชืื ืื ืืืื ืืืืื ืืืช.
ืืืืืจ ืื ืื ืฉื ืืืืืืช ื-R: tidyverse, dplyr
ะ dplyr
ื ืืชื ืืฉืื 2 ืืืืืืช ืืืืช ืืืืฆืขืืช ืืคืื ืงืฆืื bind_rows()
, ืืขืืจืช ืืืืืืช ืืืืขืื ืื ืฉืื.
ืืกื ื ืฉืืจืืช ื-R: dplyr
# ะะตััะธะบะฐะปัะฝะพะต ะพะฑัะตะดะธะฝะตะฝะธะต ัะฐะฑะปะธั
## dplyr
bind_rows(ga_nov, ga_dec)
ืฆืืจืืฃ ืื ืื ืฉื ืืืืืืช ื-R: data.table
ืื ืื ืื ืืกืืื, ืืืื ื ืฉืชืืฉ rbind()
.
ืกืื ืื ืฉืืจืืช ื-R: data.table
## data.table
rbind(ga_nov, ga_dec)
ืืืืืจ ืื ืื ืฉื ืืืืืืช ืืคืืืชืื: ืคื ืืืช
ะ pandas
ืืคืื ืงืฆืื ืืฉืืฉืช ืืฆืืจืืฃ ืืืืืืช concat()
, ืฉืืืื ืืชื ืฆืจืื ืืืขืืืจ ืจืฉืืื ืฉื ืืกืืจืืช ืืื ืืฉืื ืืืชื.
ืืืชืจื ืกืื ืื ืืคืืืชืื: ืคื ืืืช
# ะฒะตััะธะบะฐะปัะฝะพะต ะพะฑัะตะดะธะฝะตะฝะธะต ัะฐะฑะปะธั
pd.concat([ga_nov, ga_dec])
ืฆืืจืืฃ ืืืคืงื ืฉื ืฉืืืื ืืช
ืคืขืืื ืฉืื ืขืืืืืช ืืืฉื ืืื ืืชืืืกืคืืช ืืืืื ืืจืืฉืื ื ืขื ืืื ืืคืชื. ืืื ืืฉืืฉ ืืขืชืื ืงืจืืืืช ืืืฉืจ ืืขืฉืืจืื ืืืืช ืขืืืืืช (ืืืืืื, ืืืื ืขื ื ืชืื ื ืืืืจืืช) ืืืื ื ืชืื ื ืืชืืืืกืืช (ืืืืืื, ืขืืืช ืืืฆืจ).
ืืฉื ื ืืกืคืจ ืกืืื ืืฆืืจืคืืช:
ืืืืื ืฉื ืืขื ื ืงืืื ืืื ืืืืจ ืืฉ ืื ื ืขืืืื ืึดืื, ืืืชืืื ืืงืื ืืืืืจ ืฉื ืื ืืกืข:
1 - ื ืงืื
2 - ืืืจ
ืืื ืื, ืืฆืจื ื ืืืื - ืกืคืจ ืขืืื ืืื. ืืืฆืื ื ืืื ืืืชืจ ืฉื ื ืชืื ืื ืขื ืืื ืื ืืกืขืื, ืขืืื ื ืืืืกืืฃ ืืช ืฉื ืืืืืจ ืืืกืคืจืืื ืืื ืืฉืืืื ืืืืจ.
ืืืื ืืืคืงืืช ืืฆืืจืคืช ื-R: tidyverse, dplyr
ะ dplyr
ืืฉ ืืฉืคืื ืฉืืื ืฉื ืคืื ืงืฆืืืช ืืืฆืืจืคืืช ืืืคืงืืช:
inner_join()
left_join()
right_join()
full_join()
semi_join()
nest_join()
anti_join()
ืื ืคืืฅ ืืืืชืจ ืืชืจืืื ืฉืื ืืื left_join()
.
ืืชืืจ ืฉื ื ืืืจืืืื ืืื ืืจืืฉืื ืื, ืืคืื ืงืฆืืืช ืืืคืืจืืืช ืืืขืื ื ืืจืฉืืช ืฉืชื ืืืืืืช ืืื ืืืฆืืจืฃ, ืืืืจืืืื ื ืืฉืืืฉื by ืขืืื ืืฆืืื ืืช ืืขืืืืืช ืืืฆืืจืคืืช.
ืฉืืืื ืืืคืงื ืืฆืืจืคืื ื-R: dplyr
# ะพะฑัะตะดะธะฝัะตะผ ัะฐะฑะปะธัั
left_join(titanic, gender,
by = c("Sex" = "id"))
ืฆืืจืืฃ ืืืคืงื ืฉื ืืืืืืช ื-R: data.table
ะ data.table
ืขืืื ืืืฆืืจืฃ ืืืืืืืช ืืืืฆืขืืช ืืงืฉ ืืืืฆืขืืช ืืคืื ืงืฆืื merge()
.
ืืคืื ืงืฆืื ืืจืืืื ืืื ืืืืืื() ื-data.table
- x, y - ืืืืืืช ืืืฆืืจืคืืช
- by โ ืขืืืื ืฉืืื ืืืคืชื ืืืฆืืจืคืืช ืื ืืฉ ืื ืืืชื ืฉื ืืฉืชื ืืืืืืืช
- by.x, by.y - ืฉืืืช ืขืืืืืช ืฉืืฉ ืืืื, ืื ืืฉ ืืื ืฉืืืช ืฉืื ืื ืืืืืืืช
- all, all.x, all.y โ ืกืื ืืืืืืจ, all ืืืืืจ ืืช ืื ืืฉืืจืืช ืืฉืชื ืืืืืืืช, all.x ืืชืืื ืืคืขืืืช LEFT JOIN (ืืขืืื ืืช ืื ืืฉืืจืืช ืฉื ืืืืื ืืจืืฉืื ื), all.y โ ืืชืืื ื- ืคืขืืืช RIGHT JOIN (ืชืฉืืืจ ืืช ืื ืืฉืืจืืช ืฉื ืืืืื ืืฉื ืืื).
ืฆืืจืืฃ ืืืคืงื ืฉื ืืืืืืช ื-R: data.table
# ะพะฑัะตะดะธะฝัะตะผ ัะฐะฑะปะธัั
merge(titanic, gender, by.x = "Sex", by.y = "id", all.x = T)
ืืฆืืจืคืืช ืฉืืืื ืืืคืงื ืืคืืืชืื: ืคื ืืืช
ืืื ืื ื data.table
ืืชืื pandas
ืืคืื ืงืฆืื ืืฉืืฉืช ืืฆืืจืืฃ ืืืืืืช merge()
.
ืืืขืื ืื ืฉื ืคืื ืงืฆืืืช ืืืืืื() ืืคื ืืืช
- ืืื - ืกืื ืืืืืจ: ืฉืืื, ืืืื, ืืืฆืื ื, ืคื ืืื
- on - ืขืืืื ืฉืืื ืืคืชื ืื ืืฉ ืื ืืืชื ืฉื ืืฉืชื ืืืืืืืช
- left_on, right_on - ืฉืืืช ืฉื ืขืืืืืช ืืคืชื, ืื ืืฉ ืืื ืฉืืืช ืฉืื ืื ืืืืืืืช
ืืฆืืจืคืืช ืฉืืืื ืืืคืงื ืืคืืืชืื: ืคื ืืืช
# ะพะฑัะตะดะธะฝัะตะผ ะฟะพ ะบะปััั
titanic.merge(gender, how = "left", left_on = "Sex", right_on = "id")
ืคืื ืงืฆืืืช ืืกืืกืืืช ืฉื ืืืื ืืขืืืืืช ืืืืฉืืืช
ืคืื ืงืฆืืืช ืืืื ืืืืืช ืืืฉืืขืืชื ืืคืื ืงืฆืืืช ืฆืืืจื, ืืื ืืฉืืฉืืช ืืขืชืื ืงืจืืืืช ืื ืื ืืชืื ื ืชืื ืื. ืืื ืื ืืืื ืืคืื ืงืฆืืืช ืฆืืืจื, ืคืื ืงืฆืืืช ืืืื ืืื ื ืืฉื ืืช ืืช ืืกืคืจ ืืฉืืจืืช ืฉื ืืกืืจืช ืื ืชืื ืื ืืืืฆืืช.
ืืขืืงืจื ืฉื ืืืจ, ืืืืฆืขืืช ืคืื ืงืฆืืืช ืืืืื, ืื ื ืืคืฆืืื ืืช ืืกืืจืช ืื ืชืื ืื ืื ืื ืกืช ืืืืงืื ืืคื ืงืจืืืจืืื ืืืฉืื, โโืืืืืจ. ืืคื ืืขืจื ืฉื ืฉืื, ืื ืืกืคืจ ืฉืืืช. ืืื ืื ื ืืืฆืขืื ืคืขืืืืช ืืจืืชืืืืืช ืืื ืืืื. ืืชืืฆืื ืฉื ืคืขืืืืช ืืื ืชืืืืจ ืืื ืฉืืจื, ืืืืืจ. ืืืื ืืฉื ืืช ืืช ืืืกืคืจ ืืืืื ืฉื ืฉืืจืืช ืืืืื.
ืืืืืื, ืืืื ื ืืงื ืืช ืืืืื ืืืืจ. ืื ื ืืืืืื ืืืฉื ืืื ืืืืืื ืขืืืช ืื ืืจืืืก ืืืืชื ืืืกืืจืช ืืืืงืช ืืืงืชื ืฉืื.
ืืฉื ืื, ืขืืื ื ืืงืื ืืื ืงื ืืช ืืขืืืช ืืืืืืช ืฉื ืืจืืืก ืืืืืงืช ืืงืืื ื ืื ืืืืืช ืืืื ืฉืืื ืืืจืืืก ืืงื ืื, ืืื ืืืืง ืืช ืืขืืืช ืฉื ืื ืืจืืืก ืืขืืืช ืืืืืืช ืฉื ืื ืืืจืืืกืื ืฉื ืืืชื ืืืืงืช ืชื ื ืืกืขืื. .
ืคืื ืงืฆืืืช ืืืื ื-R: tidyverse, dplyr
ืืื ืืืืกืืฃ ืขืืืืืช ืืืฉืืช, ืืืื ืืืฉืชืืฉ ืืงืืืืฅ ืฉืืจืืช, ื dplyr
ืืฉืจืช ืคืื ืงืฆืื mutate()
.
ืืชื ืืืื ืืคืชืืจ ืืช ืืืขืื ืฉืชืืืจื ืืขืื ืขื ืืื ืงืืืืฅ ื ืชืื ืื ืืคื ืฉืื Pclass ืืืกืื ืืช ืืฉืื ืืืืจ ืืืฉ ืืื ื ืกืืขื. ืืืืจ ืืื, ืืื ืืช ืงืืืืฅ ืืืืื ืืืืง ืืช ืขืจืื ืืฉืืืช ืืื ื ืกืืขื ืืื ืฉืงืจื ืืฉืื ืืงืืื.
ืคืื ืงืฆืืืช ืืืื ื-R: dplyr
group_by(titanic, Pclass) %>%
mutate(Pclass_cost = sum(Fare)) %>%
ungroup() %>%
mutate(ticket_fare_rate = Fare / Pclass_cost)
ืคืื ืงืฆืืืช ืืืื ื-R: data.table
ืืืืืจืืชื ืืคืชืจืื ื ืฉืืจ ืืื ืืื ื dplyr
, ืขืืื ื ืืคืฆื ืืช ืืืืื ืืืืื ืืช ืืคื ืฉืื Pclass. ืคืื ืืขืืืื ืืืฉื ืืช ืืกืืื ืขืืืจ ืืงืืืฆื ืืืชืืื ืืื ืฉืืจื, ืืืืกืฃ ืขืืืื ืื ืื ื ืืืฉืืื ืืช ืืืง ืืขืืืช ืฉื ืื ืืจืืืก ืืงืืืฆื ืฉืื.
ืืื ืืืืกืืฃ ืขืืืืืช ืืืฉืืช data.table
ืืคืขืื ื ืืื :=
. ืืืื ืืืืื ืืคืชืจืื ืืขืื ืืืืฆืขืืช ืืืืืื data.table
ืคืื ืงืฆืืืช ืืืื ื-R: data.table
titanic[,c("Pclass_cost","ticket_fare_rate") := .(sum(Fare), Fare / Pclass_cost),
by = Pclass]
ืคืื ืงืฆืืืช ืืืื ืืคืืืชืื: ืคื ืืืช
ืืจื ืืืช ืืืืกืืฃ ืื ืขืืืื ืืืฉื pandas
- ืืฉืชืืฉ ืืคืื ืงืฆืื assign()
. ืืกืืืื ืขืืืช ืืืจืืืกืื ืืคื ืืืชืช ืืงืชื, ืืื ืงืืืืฅ ืฉืืจืืช, ื ืฉืชืืฉ ืืคืื ืงืฆืื transform()
.
ืืืื ืืืืื ืืคืชืจืื ืื ื ืืกืืฃ ืืืืื ืืืืจ ืืืชื 2 ืขืืืืืช.
ืคืื ืงืฆืืืช ืืืื ืืคืืืชืื: ืคื ืืืช
titanic.assign(Pclass_cost = titanic.groupby('Pclass').Fare.transform(sum),
ticket_fare_rate = lambda x: x['Fare'] / x['Pclass_cost'])
ืืืืช ืืชืืืช ืคืื ืงืฆืืืช ืืฉืืืืช
ืืืื ืืืืช ืืชืืื ืืื ืฉืืืืช ืืืืฆืืข ืคืขืืืืช ืฉืื ืืช ืขื ื ืชืื ืื ืืืืืืืช ืืื ืฉืงืื ื.
ืชืืืืจ
ืืกืืืจ
ืืืืช ื ืชืื ืื
ืืืื ืคื ืื
ืืืขื ื ืชืื ืื
vroom()
/ readr::read_csv()
/ readr::read_tsv()
fread()
read_csv()
ืืฆืืจืช ืืกืืจืืช ื ืชืื ืื
tibble()
data.table()
dict()
+ from_dict()
ืืืืจืช ืขืืืืืช
select()
ืืืืื j, ืืืงืื ืฉื ื ืืกืืืจืืื ืืจืืืขืื
ืื ื ืืขืืืจืื ืืช ืจืฉืืืช ืืขืืืืืช ืื ืืจืฉืืช ืืกืืืจืืื ืืจืืืขืื / drop()
/ filter()
/ select_dtypes()
ืกืื ืื ืฉืืจืืช
filter()
ืืืืื i, ืืืงืื ืจืืฉืื ืืกืืืจืืื ืืจืืืขืื
ืื ื ืืคืจืืื ืืช ืชื ืื ืืกืื ืื ืืกืืืจืืื ืืจืืืขืื / filter()
ืงืืืืฅ ืืืืจืืฆืื
group_by()
+ summarise()
ืืจืืืื ืืื j + by
groupby()
+ agg()
ืืืืื ืื ืื ืฉื ืืืืืืช (UNION)
bind_rows()
rbind()
concat()
ืฆืืจืืฃ ืืืคืงื ืฉื ืืืืืืช (JOIN)
left_join()
/ *_join()
merge()
merge()
ืคืื ืงืฆืืืช ืืกืืกืืืช ืฉื ืืืื ืืืืกืคืช ืขืืืืืช ืืืืฉืืืช
group_by()
+ mutate()
ืืืืื j ืืืืฆืขืืช ืืืคืขืื :=
+ ืืืขืื by
transform()
+ assign()
ืืกืงื ื
ืืืื ืืืืืจ ืชืืืจืชื ืื ืืช ืืืืืืฉืื ืืืืคืืืืืืื ืืืืชืจ ืฉื ืขืืืื ื ืชืื ืื, ืื ืื ื ืืฉืื ืื ืชืชืงื ืืช ืืืขืืืืช ืฉืื ืืืขืจืืช, ืื ืคืฉืื ืชืฉืืื ืืช ืืืืืข ืฉื ืืชื ืืืืืจ ืขื ืืื ืืงืืช ืืืจืืช ืืขืืืื ืขื ื ืชืื ืื ื- R / Python.
ืืคื ืฉืืชืืชื ืืืขืื, ืืืจืช ืืืืืจ ืื ืืืืชื ืืืคืืช ืืช ืืขืชื ืขื ืืืื ืฉืคื ืขืืืคื, ืืื ืืคืฉื ืืช ืืืืืื ืืช ืืืืื ืืช ืฉืชื ืืฉืคืืช, ืื, ืืืืืช ืืฆืืจื, ืื ืืื ืืื ืืื.
ืื ืืืืชื ืืช ืืืืืจ, ืืฉืื ืืงืื ืื ืืืื ืืืฉืื ืืฆืื
ืจืืืื
ืืืืื ืืืืืืืืช ืืืืืช ืืชื ืืฉืชืืฉ ืืขืืืื ืฉืื?
ืืชืืืืืช ืชืืืื ืืืชืื ืืช ืืกืืื ืืืืืจืชืื.
ืจืง ืืฉืชืืฉืื ืจืฉืืืื ืืืืืื ืืืฉืชืชืฃ ืืกืงืจ.
ืืืืื ืืืืืช ืขืืืื ื ืชืื ืื ืืชื ืืฉืชืืฉ (ืชืืื ืืืืืจ ืืกืคืจ ืืคืฉืจืืืืช)
-
45,2%ืืกืืืจ19
-
33,3%data.table14
-
54,8%ืคื ืืืช23
42 ืืฉืชืืฉืื ืืฆืืืขื. 9 ืืฉืชืืฉืื ื ืื ืขื.
ืืงืืจ: www.habr.com