相关疑难解决方法(0)

命令行实用程序,用于在linux中打印数字统计信息

我经常发现自己的文件每行有一个数字.我最终在excel中导入它来查看中位数,标准差等内容.

在linux中是否有一个命令行实用程序来做同样的事情?我通常需要找到平均值,中位数,最小值,最大值和标准偏差.

linux statistics command-line

65
推荐指数
11
解决办法
5万
查看次数

R - 逐行读取STDIN

我想将一个大数据表流式传输到R LINE BY LINE,如果当前行具有特定条件(假设第一列> 15),则将该行添加到内存中的数据帧.我写了以下代码:

count<-1;
Mydata<-NULL;
fin <- FALSE;
while (!fin){
    if (count==1){
        Myrow=read.delim(pipe('cat /dev/stdin'), header=F,sep="\t",nrows=1);
        Mydata<-rbind(Mydata,Myrow);
        count<-count+1;
    }
    else {
        count<-count+1;
        Myrow=read.delim(pipe('cat /dev/stdin'), header=F,sep="\t",nrows=1);
        if (Myrow!=""){
        if (MyCONDITION){
            Mydata<-rbind(Mydata,Myrow);
        }
        }
        else
        {fin<-TRUE}
    }
}
print(Mydata);
Run Code Online (Sandbox Code Playgroud)

但我收到错误"数据不可用".请注意我的数据很大,我不想一次性阅读并应用我的条件(在这种情况下很容易).

streaming r line readline

12
推荐指数
1
解决办法
8180
查看次数

读取Rscript或从stdin获取输入

我看到当一个文件名作为参数时,如何让Rscript执行我想要的操作,例如,如果我的Rscript被调用script并且包含:

#!/usr/bin/Rscript 
path <- commandArgs()[1]
writeLines(readLines(path))
Run Code Online (Sandbox Code Playgroud)

然后我可以从bash命令行运行:

Rscript script filename.Rmd --args dev='svg'
Run Code Online (Sandbox Code Playgroud)

并成功地将filename.Rmd回复的内容发回给我.如果不是传递上面的参数像filename.Rmd我想传递文本的文件名stdin,我尝试修改我的脚本从stdin读取:

#!/usr/bin/Rscript 
writeLines(file("stdin"))
Run Code Online (Sandbox Code Playgroud)

但我不知道如何为这种情况构建命令行调用.我尝试了内容管道:

cat filename.Rmd | Rscript script --args dev='svg'
Run Code Online (Sandbox Code Playgroud)

并尝试重定向:

Rscript script --args dev='svg' < filename.Rmd
Run Code Online (Sandbox Code Playgroud)

无论哪种方式我都得到错误:

Error in writeLines(file("stdin")) : invalid 'text' argument
Run Code Online (Sandbox Code Playgroud)

(我也试过open(file("stdin"))).我不确定我是否错误地构造了Rscript,或者错误地构造了命令行参数,或者两者都没有.

bash stdin r

7
推荐指数
1
解决办法
8782
查看次数

标签 统计

r ×2

bash ×1

command-line ×1

line ×1

linux ×1

readline ×1

statistics ×1

stdin ×1

streaming ×1