1. 問題提出
比如我編寫一個腳本,讀取一個數據的前6行,兩個參數:
- 數據名稱
- 行數(默認爲6)
怎麼判斷第二個參數是否存在呢?
2. 問題解決
如果沒有這個參數,選擇默認6,如果有參數,按照參數的行數提取。
使用length(args),判斷參數長度式進行處理。
(base) [dengfei@ny01 a]$ vi head.R
args = commandArgs(TRUE)
if(length(args)==2){
dd = read.csv(args[1])
n = args[2]
head(dd,n)
}else{
dd = read.csv(args[1])
head(dd)
}
執行情況:
(base) [dengfei@ny01 a]$ Rscript head.R npk.csv 2
block N P K yield
1 1 0 1 1 49.5
2 1 1 1 0 62.8
(base) [dengfei@ny01 a]$ Rscript head.R npk.csv
block N P K yield
1 1 0 1 1 49.5
2 1 1 1 0 62.8
3 1 0 0 0 46.8
4 1 1 0 1 57.0
5 2 1 0 0 59.8
6 2 1 1 1 58.5