Coursera The Data Scientist’s Toolbox Week2 心得筆記
數據科學家的工具箱
約翰霍普金斯大學 公共衛生學院
The Data Scientist’s Toolbox
Johns Hopkins Bloomberg School of Public Health
Week 2
第二週學習筆記
2015年6月1日 - 2015年6月29日
Video Lectures
Week 2 (50:50)
Tips from Coursera Users - Optional Video (3:53)
Command Line Interface (16:04)
Windows: Git Bash (除非熟悉Git,不然安裝的選項一律默認就好。Git Bash只有在Windows系統上可行!)
Mac/Linux: Terminal
/ (root):根目錄
~ (home):主目錄
CLI Commands
- command 命令
- flags 參數選項
- arguments 執行對象
Summary of Commands
- pwd (print working directory):輸出目前的工作目錄
- clear:清除視窗
- ls (list):列出所在工作目錄中的所有子目錄
- ls -a:列出所有隱藏和未隱藏的文件夾
- ls -al:顯示這個文件夾的詳細訊息
- cd "目錄位址" (change directory):更改工作目錄,沒有輸入argument會預設主目錄
- cd .. :進入上一級目錄
- mkdir "目錄名稱" (make directory):創建目錄
- touch "文件名稱":創建一個空文件
- cp "文件名稱" "複製到哪個目錄" (copy):複製文件
- cp -r "目錄名稱" "複製到哪個目錄" (copy):複製目錄
- rm "文件名稱" (remove):刪除文件
- rm -r "目錄名稱" (remove):刪除目錄
- mv "文件名稱" "移動到哪個目錄" (move):移動文件
- mv "文件名稱" "文件新名稱" (rename):更改文件名稱
- echo "輸出值":列印出你的參數值
Hello World!
- date:列印日期
Sun Jun 7 13:00:00 2015
Introduction to Git (4:49)
Version Control
版本控制系統是按時間記錄你對某個、某組文件所做的修改,方便你找回過去某個特定的版本。
Git是一個免費開源的版本控制系統,也是目前最流行、應用最廣泛的版本控制系統之一。
https://git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git
$ git config --global user.name "Your Name Here"
$ git config --global user.email "your_email@example.com"
這個部分只需要進行一次,但你可以隨時更改。
$ git config --list ## 可以看見你的用戶名、信箱以及其他訊息
$ exit ## 退出Git Bash
Introduction to Github (3:53)
Git = Local (on your computer); GitHub = Remote (on the web)
GitHub是一個提供與軟體開發的網路主機服務,其使用Git版本控制系統作為核心。它能讓你在線開發項目,也能將項目上傳至網路上供其他人查閱和開發。
也就是說,它允許用戶對本地資源庫執行推送和拉取,對處於Git管理下的本地資源庫,你可以將它們推送至網路上的遠程資源庫中,或從遠程資源庫拉取回來。它同時提供每一個用戶一個主頁,當中列出了該用戶所有的資源庫。這些GitHub上的資源庫也會備份在服務器上,以防止你的本地庫發生意外。
但GitHub最主要的核心是在於它的社交功能,它允許用戶互相關注、分享及開發各自項目。
※ GitHub的帳號信箱要跟Coursera的信箱一樣
Creating a Github Repository (5:51)
創建資源庫(repo)
- 創建一個全新的資源庫
- https://github.com/new
- 或在個人主頁(https://github.com/yourUserNameHere)的右上角建立。(如下圖)
※ 免費帳戶一律只能創建公開(Public)的資源庫。
※ 記得勾選"Initialize this repository with a README"的選擇框。
現在你可以在本地點腦上創建一個備份,先打開Git Bash,然後創建一個用來存放資源庫備份的文件夾
- 創建一個基於其他用戶的資源庫的分叉(Fork)
建立分叉可以讓你和其他人合作開發軟體,它會在你的個人主頁裡創建一個該資源庫的備份。
$ git clone http://github.com/yourUserNameHere/repoNameHere.git
這個命令可以讓你獲得遠程服務器上的資源庫版本,它會複製在你當前的工作目錄下。
https://help.github.com/articles/fork-a-repo/
https://git-scm.com/book/it/v2/Git-Basics-Getting-a-Git-Repository
Basic Git Commands (5:52)
http://gitready.com/beginner/2009/01/21/pushing-and-pulling.html
git add .:把所有新文件添加到你現在的工作目錄
git add -u:更新那些被改名或被刪除的文件
git add -A:包含上述兩個命令
git commit -m "message":提交,注釋最好是關於此次更改的描述,這僅僅是本地的操作,不會更新到GitHub
git push:推送到GitHub
Fork及Branch的差別(http://wp.chunhsin.idv.tw/?p=4179)
git checkout -b "branchname":創建一個分支(Branch)
- Fork會另外複製一個版本,這個版本也是一個完整的套件。
- 官方說明文字裡指出,Fork主要是指要以其他人的套件為初始套件來開發時,或者要替他人的套件做出貢獻,也就是說通常是從其他Git帳號所擁有的套件複製而來的就是Fork。
- 如果是自己的套件,正確的作法應使用branch
- Fork底下還可以有Branch,但沒有Branch底下還有Fork這種狀況。
- 無論是Fork還是Branch的版本都可以合併至主要版本。唯一差別是Fork是向原作者送出merge的要求,尚需要原作者允許才可以合併,而branch因為是從自己的帳號分支出來的套件,所以不須另外允許。
git branch:查看分支
git checkout master:切換回主分支
合併分叉(Fork)或分支(Branch),這功能只有在GitHub才有
如果是與別人合併,那他們會收到通知,如果他們同意修改,就會將你的請求整合到他們的資源庫。
Basic Markdown (2:22)
Markdown(.md)是一種以簡單、特定格式寫成的文件。GitHub、R及Rstudio都可以識別此格式。
Heading
## This is a secondary heading // 第二級標題
### This is a tertiary heading // 第三級標題
* first item in list // 未排序列表第一項
* second item in list // 未排序列表第二項
* third item in list // 未排序列表第三項
Getting markdown help
- http://daringfireball.net/projects/markdown/
- 如果是在Rstudio介面,可以按中間的MD按鈕,會看到一個Markdown的快速指南。
- http://markdown.tw/resources.html
Installing R Packages (5:37)
http://cran.r-project.org/mirrors.html
http://www.bioconductor.org/(生物學及大型數據)
> a <- available.packages()
> head(rownames(a), 3) ## Shoe the names of the first few packages
[1] "A3" "abc" "ABCanalysis"
http://cran.r-project.org/web/views/
> install.packages("slidify") ## Installing an R Package
> install.packages(c("slidify, "ggplot2", "devtools"))
> source("http://bioconductor.org/biocLite.R")> biocLite()
> biocLite(c("GenomicFeatures", "AnnotationDbi"))
library():告訴R要載入哪個套件
> library(ggplot2)
> search() ## 可以看見組成ggplot2的所有函數
[1] ".GlobalEnv" "package:ggplot2" "tools:rstudio"
[4] "package:stats" "package:graphics" "package:grDevices"
[7] "package:utils" "package:datasets" "package:methods"
[10] "Autoloads" "package:base"
Installing Rtools (2:29)
這一節僅針對Windows用戶。
Rtools是在Windows下建構R套件時必備的一系列工具。
> find.package("devtools")
> install.packages("devtools")
> library(devtools)
然後輸入find_rtools(),應該返回一個TRUE。