相关疑难解决方法(0)

在R中,具有与基本R函数同名的变量究竟是什么问题?

使用具有相同名称的基本R中的函数的变量名称似乎通常被认为是不良的编程习惯.

例如,写作很有诱惑力:

data <- data.frame(...)
df   <- data.frame(...)
Run Code Online (Sandbox Code Playgroud)

现在,该函数data在函数df计算f密度函数时加载数据集.

同样,写作很有诱惑力:

a <- 1
b <- 2
c <- 3
Run Code Online (Sandbox Code Playgroud)

这被认为是不好的形式,因为该函数c将组合其参数.

但是:在R函数的主力中lm,计算线性模型data用作参数.换句话说,data成为lm函数内部的显式变量.

那么:如果R核心团队可以对变量和函数使用相同的名称,那么什么阻止了我们凡人呢?

答案不是R会混淆.请尝试以下示例,其中我明确指定了具有名称的变量c.R根本不会对变量和函数之间的区别感到困惑:

c("A", "B")
[1] "A" "B"

c <- c("Some text", "Second", "Third")
c(1, 3, 5)
[1] 1 3 5

c[3]
[1] "Third"
Run Code Online (Sandbox Code Playgroud)

问题:具有与基本R函数同名的变量究竟是什么问题?

variables r function

46
推荐指数
3
解决办法
6953
查看次数

在R脚本中解析命令行参数

有没有方便的方法来自动解析传递给R脚本的命令行参数?

像perl这样的东西Getopt::Long

parsing r command-line-arguments

42
推荐指数
4
解决办法
3万
查看次数

每次运行时,如何避免打印R脚本?

假设我有一个R脚本:

library('nnet')    
something <- runif(50); 
print(something) 
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行此脚本时,它会打印:

> library('nnet')
> something <- runif(5); 
> print(something)
 [1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)

我希望它只打印:

[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何做到这一点.sink("/ dev/null")没有做任何事情,手动重定向stderr没有做任何事情,我找不到任何有用的信息.

r r-faq

16
推荐指数
1
解决办法
7987
查看次数

使用传递文件的aR在命令行上调用RMarkdown

总之,我在RStudio中的'input_file1.txt'上使用我的脚本'Graphs.R'来创建一个Rmd然后我编织成html.我想自动执行此过程以在命令行上运行更多文件.

到目前为止,我可以使用以下命令在命令行上运行Rscript:

Rscript Graphs.R input_file1.txt

我也知道我可以使用以下命令创建.RMD文件:

Rscript -e rmarkdown :: render(Graphs.R)

但是,我想做以下事情:

Rscript -e rmarkdown :: render('Graphs.R input_file1.txt','output_file.Rmd')

有什么想法如何做到这一点?

command-line automation r argument-passing r-markdown

14
推荐指数
1
解决办法
1万
查看次数

如何在命令提示符中获取用户输入并将其传递给 R

我正在尝试使用

var <- as.numeric(readline(prompt="Enter a number: "))
Run Code Online (Sandbox Code Playgroud)

然后在计算中使用它。

在 RStudio 中运行时工作正常,但我需要能够从 Windows 10 中的命令行传递此输入我正在使用带有单行的批处理文件

Rscript.exe "C:\My Files\R_scripts\my_script.R"
Run Code Online (Sandbox Code Playgroud)

当它到达用户输入部分时,它会冻结并且不提供预期的输出。

windows r command-line-arguments

4
推荐指数
1
解决办法
3309
查看次数

在R中通过命令行传递多个参数

我试图通过命令行将多个文件路径参数传递给Rscript,然后可以使用参数解析器进行处理.最终我会想要这样的东西

Rscript test.R --inputfiles fileA.txt fileB.txt fileC.txt --printvar yes --size 10 --anotheroption helloworld -- etc...
Run Code Online (Sandbox Code Playgroud)

通过命令行传递,并在解析时将结果作为R中的数组

args$inputfiles =  "fileA.txt", "fileB.txt", "fileC.txt"
Run Code Online (Sandbox Code Playgroud)

我尝试了几种解析器,包括optparse和getopt,但它们似乎都不支持这种功能.我知道argparse确实如此,但它目前不适用于R版本2.15.2

有任何想法吗?

谢谢

command-line arguments r optparse argparse

3
推荐指数
2
解决办法
6464
查看次数

从JAVA调用R得到卡方统计和p值

我在JAVA中有两个4*4矩阵,其中一个矩阵包含观察计数和其他预期计数.

我需要一种自动的方法来计算这两个矩阵之间的卡方统计量的p值; 但是,就我所知,JAVA没有这样的功能.

我可以通过将两个矩阵读入R作为.csv文件格式,然后使用chisq.test函数计算卡方和p值,如下所示:

obs<-read.csv("obs.csv")
exp<-read.csv("exp.csv")
chisq.test(obs,exp)
Run Code Online (Sandbox Code Playgroud)

其中.csv文件的格式如下:

A, C, G, T
A, 197.136, 124.32, 63.492, 59.052
C, 124.32, 78.4, 40.04, 37.24
G, 63.492, 40.04, 20.449, 19.019
T, 59.052, 37.24, 19.019, 17.689
Run Code Online (Sandbox Code Playgroud)

给定这些命令,R将给出格式的输出:

X-squared = 20.6236, df = 9, p-value = 0.01443
Run Code Online (Sandbox Code Playgroud)

其中包括我正在寻找的p值.

有谁知道自动化过程的有效方法:

1)将我的矩阵从JAVA输出到.csv文件中2)将.csv文件上传到R 3)将.csv文件上的chisq.test调用到R中4)将输出的p值返回JAVA?

谢谢你的帮助....

java statistics r chi-squared

3
推荐指数
1
解决办法
1万
查看次数

使用bash脚本中的参数运行R文件

可能重复:
如何从R脚本中读取命令行参数?

我有一个R脚本,我希望能够提供几个命令行参数(而不是代码本身的硬编​​码参数值).该脚本在linux上运行.

我无法找到如何在命令行Bash上读取R.script.

sh文件

cd `dirname $0`
/usr/lib64/R/bin/R --vanilla --slave "--args input='$1' input2='$2' output='$3'"  file=/home/lvijfhuizen/galaxy_dist/tools/lisanne/partone.R  $3.txt
Run Code Online (Sandbox Code Playgroud)

R档

args <- commandArgs()
file <- read.csv(args[8],head=TRUE,sep="\t")   
annfile <- read.csv(args[9],head=TRUE,sep="\t")
Run Code Online (Sandbox Code Playgroud)

bash r

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

对多个文件执行相同的操作

我在一个文件夹中有多个文件,我想使用R对每个文件执行相同的操作,而不是每次只更改脚本中的文件名.特别是,我有26个.csv文件,我需要单独识别重复的条目.任何有关最佳方法的建议都表示赞赏.

r

0
推荐指数
1
解决办法
651
查看次数