由于某种原因,当我的函数体位于 with() 表达式内时,调试模式似乎不允许我进入 with() 部分。为什么会这样,有办法解决这个问题吗?下面是一个愚蠢的(但希望可以重现)演示。
ff=function(x){
print("Hello")
with(iris,{
y=x;
z=y+mean(Sepal.Width);
return(z);})
}
Run Code Online (Sandbox Code Playgroud)
现在进入调试模式并尝试该功能...
debugonce(ff);debugonce(with);
ff(10)
Run Code Online (Sandbox Code Playgroud)
调试模式只是跳过 with() 子句,并返回答案 (13.05733)。我如何进入这些内部条款?
我有一个表,其中有一些具有空值的单元格(散布在数据集中).是否有任何简单的方法可以排除任何列中具有null的所有行?
我只是想避免这个......
select from T where not null col1, not null col2, not null col3, etc...
Run Code Online (Sandbox Code Playgroud) 想象一下,我有一个填充表T_old与给定的模式(让我们说混合的int,浮点数,符号等)我现在想要创建一个新的空/空表T_new,它具有与T_old完全相同的模式.我该怎么做呢?最后,我希望这两个操作都有效:T_old uj T_new和T_new uj T_old.有什么建议?
我有以下目录结构,我正在尝试创建一个简单的bash脚本,用模式foo*/scripts/*A.txt打印出所有文件(即foo1/scripts/fileA.txt和foo2/scripts/fileA.txt)
$ tree
.
??? bar
? ??? scripts
? ??? fileA.txt
? ??? fileB.txt
??? bash_scrap.sh
??? foo1
? ??? scripts
? ??? fileA.txt
? ??? fileB.txt
??? foo2
??? scripts
??? fileA.txt
??? fileB.txt
Run Code Online (Sandbox Code Playgroud)
我现在创建一个脚本bash_scrap.sh,我想用第一个命令行参数给出的模式打印所有文件名.
$ cat bash_scrap.sh
#!/bin/bash
FILES=$1
for f in $FILES
do
echo "Processing $f file..."
printf "\n\n"
done
Run Code Online (Sandbox Code Playgroud)
当我直接定义FILES并在终端中运行脚本时,我得到了预期的输出
$ FILES=foo*/scripts/*A.txt
$ for f in $FILES; do echo "Processing $f file..."; printf "\n\n"; done
Processing foo1/scripts/fileA.txt file...
Processing foo2/scripts/fileA.txt file...
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将此作为带有输入模式的脚本运行,它只打印出第一个文件名.
$ ./bash_scrap.sh foo*/scripts/*A.txt …Run Code Online (Sandbox Code Playgroud)