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