我是Golang的新手,我无法使用flag找到解决此问题的方法。
我如何使用标志,以便我的程序可以处理此类调用,其中-term标志的出现次数可能是可变的,包括0次:
./myprogram -f flag1
./myprogram -f flag1 -term t1 -term t2 -term t3
Run Code Online (Sandbox Code Playgroud) f1 <- function(x) {
zx1 <- sample(1:nrow(zone4[[x]]), nrow(zone4[[x]]), replace=F)
zone4[[x]]$randnums <- zx1
}
f1(1)
## DOESN'T UPDATE zone4[[1]]
zx2 <- sample(1:nrow(zone4[[1]]), nrow(zone4[[1]]), replace=F)
zone4[[1]]$randnums <- zx2
## DOES UPDATE zone[[1]]
Run Code Online (Sandbox Code Playgroud)
如果我创建一个如上所示的函数f1(),则不会更新对象'zone4 [[x]]'.但是,如果我运行与上面相同的命令但显式地声明'x',如下所示,则更新对象'zone4 [[x]]'.为什么会这样?我想知道,因为我想运行代码的迭代.如果在上面的函数f1()的定义中,我写了"names(zone4 [[x]])",那么我得到的输出告诉我该函数做了它应该做的,但是当再次查询时,zone [[ x]]似乎没有变化.谢谢您的帮助.这个想法是为给定年份和另一个变量区域的数据集的每个子集创建随机数.数据集最初是单个数据框,但我使用split()函数根据年份和区域分离数据,其中有4个.也许有更好的方法将随机数分配给特定的数据子集而不用使用split()函数?