R語言如何最簡單的寫指令碼並新增幫助文件

2021-09-30 01:40:05 字數 2221 閱讀 6826

1.1 指令碼示例

head.r

args = commandargs(true)

if(length(args) != 2)else

1.2 指令碼解釋

1.3 指令碼測試

執行:無引數,直接給出幫助文件

(base) [dengfei@ny01 a]$ rscript head.r 

執行命令方式:rscript head.r dat.csv 5

head.r 為指令碼

dat.csv 為資料

5 為行數

執行:引數個數不符合要求,直接給出幫助文件

(base) [dengfei@ny01 a]$ rscript head.r npk.csv 

執行命令方式:rscript head.r dat.csv 5

head.r 為指令碼

dat.csv 為資料

5 為行數

執行:引數正確,直接執行

(base) [dengfei@ny01 a]$ rscript head.r npk.csv 4

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

2.1 指令碼示例

head2.r

library(optparse)

option_list <- list(

make_option(c("-d", "--dat"), type = "character", default=false,

help="請輸入資料檔案"),

make_option(c("-r", "--row"), type="integer", default=false,

help="請輸入行數")

)opt_parser = optionparser(option_list=option_list);

opt = parse_args(opt_parser);

file = opt$dat

r = opt$row

dd = read.csv(file)

head(dd,r)

2.2 指令碼解釋

1.3 指令碼測試

執行:–help,直接給出幫助文件

(base) [dengfei@ny01 a]$ rscript head2.r --help

usage: head2.r [options]

options:

-d dat, --dat=dat

請輸入資料檔案

-r row, --row=row

請輸入行數

-h, --help

show this help message and exit

也可以使用簡寫的-h形式列印幫助文件

(base) [dengfei@ny01 a]$ rscript head2.r -h

usage: head2.r [options]

options:

-d dat, --dat=dat

請輸入資料檔案

-r row, --row=row

請輸入行數

-h, --help

show this help message and exit

執行:引數正確,直接執行

rscript head2.r -d npk.csv -r 4
(base) [dengfei@ny01 a]$ rscript head2.r -d npk.csv -r 4

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

公升級R最簡單最直接的方法

公升級r一直是一件比較痛苦的事情,你需要先安裝新的r,然後在逐一安裝以前裝過的包。最快的辦法也是把以前的包資料夾拷到新的r中,然後在新的版本中執行包更新。由於官方的源一般都提供最新r版本的二進位制檔案,所以為了更好的穩定性一般也要跟著公升級。所以這是一件相對痛苦又不得不做的事情。現在installr...

最簡單的自動重啟指令碼

1 編輯指令碼內容 程序名字可修改 pro name tomcat while true do 用ps獲取 pro name程序數量 num ps aux grep grep v grep wc l echo num 少於1,重啟程序 sleep 5 if lt 1 then 列印xx程序不存在了 ...

shell 最簡單最牛逼的備份指令碼!!

紅色方框裡為指令碼呼叫格式,下面來看看我用這個指令碼實現的功能 之前忘記把指令碼 粘出來現在給補上 bin bash www shell backups.sh test www backups mysql www mysql 3306 data test 7 backups mysql prefix...