我有两个数据帧:
df1<- as.data.frame(matrix(1:15, ncol=5))
df2<- as.data.frame(matrix(30:44,ncol=5))
Run Code Online (Sandbox Code Playgroud)
通过使用我想要计算zscore的两个数据帧.功能是:
z = (X - u)/ O
Run Code Online (Sandbox Code Playgroud)
df1包含所有X值,df2数据帧的每一行包含用于计算均值和sd的值.我生成一个循环,为df1的第一列中的每个值计算z得分.但现在我的问题是:如何计算整个数据帧的z得分?
test <- list()
for (i in 1:nrow(df1) {
zscore<- (df1[i,1] - (apply(df2[i,],1,mean))) / (apply(df2[i,],1,sd))
test[[i]] <- matrix(zscore)
i <- 1+1
}
Run Code Online (Sandbox Code Playgroud)
谢谢你们!
当我创建并检查带有波形符号的目录是否存在时,我在Perl脚本中发现了一个轻微的不当行为,如果我使用完整/home/user路径则不会发生这种行为.当我第一次运行此脚本时,它会创建新目录.当我第二次运行它时,它无法识别目录的存在,并尝试第二次创建它:
#!/usr/bin/perl
use strict;
my $outdir = '~/test';
my $cmd = "mkdir $outdir";
unless (-d $outdir) {
0 == system($cmd) or die "Error creating outdir $outdir\n $?";
}
1;
[~] $ rm test/ -rf
[~] $ perl dir.pl
[~] $ perl dir.pl
mkdir: cannot create directory `/home/avilella/test': File exists
Error creating outdir ~/test
256 at dir.pl line 7.
Run Code Online (Sandbox Code Playgroud)
如何可靠地处理~在Perl 中使用波形符号的目录?
What is the equivalent Perl command to the GNU coreutils command readlink -f?
If any component of the file name except the last one is missing or unavailable, readlink produces no output and exits with a nonzero exit code. A trailing slash is ignored.
这是一个天真的问题,我努力寻找一个优雅的解决方案.我编写perl脚本,随着它们的成熟,增加了传递给GetOptions的选项数量.脚本的重要选项,我作为POD文档添加在顶部,但我依赖于给其他选项提供有意义的名称,我不打算明确地记录它们.
我想以某种方式将GetOptions中的哈希传递给打印的内容perldoc,以便在那里列出未记录的选项.有选择吗?
我需要从findPerl脚本中的命令获取示例文件文件,然后再创建另一个系统调用.出于某种原因,find当我从脚本中调用它时,命令会卡住.这是我需要做的:
my $search_dir = "/something/like/this/??/??/??";
# the triple '??' are needed here
my $cmd = "find $search_dir -name \"\*.$var1.token1.$var2.ext\" | head -n 1";
my $first_example_file = `$cmd`; chomp $first_example_file;
Run Code Online (Sandbox Code Playgroud)
当我通过Perl运行时它会卡住,它永远不会完成执行命令,而构建的$ cmd会立即运行,如果我复制+粘贴它并在我的bash终端中运行.有任何想法吗?
是否可以在源Perl文件的顶部放置注释,以使Emacs在同一文件中遵守4空格缩进规则,而不管在其中定义的默认缩进规则.emacs?
我发现自己用不同的缩进编辑Perl文件,一些2间距,一些4间距,我希望Emacs自动遵循文件本身描述的缩进规则,而不是每次都要更改配置.
所有这些都cperl-mode用于Perl编辑(http://www.emacswiki.org/emacs/CPerlMode).
我尝试在此示例perl脚本的末尾添加以下注释:
#!/usr/bin/perl
my @a = (1,2,3,4,5,6);
for my $e (@a) {
print "$e\n";
}
# Local variables:
# perl-indent-level: 4
# End:
Run Code Online (Sandbox Code Playgroud)
但它仍然使用缩进级别2.也许原因是因为它没有覆盖.emacs设置?
我正在处理一个C程序,该程序从一个文件中读入,每行大约有60个字符,并通过在读取文件时请求更多内存来在内存中分配字符串.在每次malloc
请求之后,它会检查函数OOM()是否有请求为了更多的记忆成功.
我已经使用越来越大的输入文件测试了程序,并且
在程序运行时查看命令时内存使用率达到1.2G时或多或少地OOM()报告.这是在64位Linux机器上,有更多的内存可用.输出来自:"Out of memory"topfile /my/binary/program
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么它达到了1.2G的限制?我记得我的系统管理员曾经说某些二进制文件只能使用高达1.2G,这恰恰就是我在这里看到的.
当我qsub在保留50GB内存的同一64位Linux SGE网格的节点上运行相同的执行时,它会报告"Out of
memory"以及以下SGE日志内存占用:
Max vmem = 2.313G
Run Code Online (Sandbox Code Playgroud)
有什么想法为什么程序达到这个内存限制?是否有任何编译标志我应该知道哪些可能导致/解决这个问题?
在下面找到当前的相关标志Makefile:
CC = gcc
CFLAGS = -Wall -O3 -funroll-loops -DNDEBUG -fomit-frame-pointer -std=gnu99 -msse2 -Wno-unused-function -Wno-unused-result
CFLAGSSFMT = -msse2 -DHAVE_SSE2 -O9 -finline-functions -fomit-frame-pointer \
-DNDEBUG -fno-strict-aliasing --param max-inline-insns-single=1800 -std=c99
LD = ld …Run Code Online (Sandbox Code Playgroud) 我在 BigQuery 中有一个包含年龄和性别字段的表,我可以像这样分组:
bq query --max_rows=9999 --format=csv --use_legacy_sql=false 'SELECT COUNT(*) AS COUNT, age, sex FROM `project.dataset.table` GROUP BY age, sex ORDER BY age, sex' 2>/dev/null | head -n 11 | csvtk pretty
COUNT age sex
143 50.0 Female
77 50.0 Male
28 51.0 Female
78 51.0 Male
30 52.0 Female
22 52.0 Male
79 53.0 Female
81 53.0 Male
111 54.0 Female
[...]
Run Code Online (Sandbox Code Playgroud)
我想按特定年龄范围分组:50-59、60-69、60-79 和 80 岁或以上。
如何转换上面的查询,以便我可以按特定年龄范围进行分组?
此外,稍微复杂一点的是,我的sex领域可以是F, Female或M, Male。分组时如何将两种类型合二为一?
编辑:我在想输出可能是这样的:
COUNT,agegroup,sex
10,50-59,Female …Run Code Online (Sandbox Code Playgroud)