标签: rscript

有没有更好的方法在 R 中分层聚类?

我想先按行然后按列进行分层聚类。我想出了一个完整的解决方案:

#! /path/to/my/Rscript --vanilla
args <- commandArgs(TRUE)
mtxf.in <- args[1]
clusterMethod <- args[2]
mtxf.out <- args[3]

mtx <- read.table(mtxf.in, as.is=T, header=T, stringsAsFactors=T)

mtx.hc <- hclust(dist(mtx), method=clusterMethod)
mtx.clustered <- as.data.frame(mtx[mtx.hc$order,])
mtx.c.colnames <- colnames(mtx.clustered)
rownames(mtx.clustered) <- mtx.clustered$topLeftColumnHeaderName
mtx.clustered$topLeftColumnHeaderName <- NULL
mtx.c.t <- as.data.frame(t(mtx.clustered), row.names=names(mtx))
mtx.c.t.hc <- hclust(dist(mtx.c.t), method=clusterMethod)
mtx.c.t.c <- as.data.frame(mtx.c.t[mtx.c.t.hc$order,])
mtx.c.t.c.t <- as.data.frame(t(mtx.c.t.c))
mtx.c.t.c.t.colnames <- as.vector(names(mtx.c.t.c.t))
names(mtx.c.t.c.t) <- mtx.c.colnames[as.numeric(mtx.c.t.c.t.colnames) + 1]

write.table(mtx.c.t.c.t, file=mtxf.out, sep='\t', quote=F, row.names=T)
Run Code Online (Sandbox Code Playgroud)

变量mtxf.in和 分别mtxf.out表示输入矩阵和聚类输出矩阵文件。变量clusterMethod是的一个hclust方法,如singleaverage

作为示例输入,这是一个数据矩阵: …

r cluster-analysis hierarchical rscript

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

Ubuntu上的Rscript

我在哪里可以安装Rscript?我需要使用exec从php文件运行R脚本.但是我需要先安装Rscript.

ubuntu r rscript

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

如何将R脚本提交给作业调度程序:bash,compiler,Rscript或其他?

我的问题:

我有一个myscript.R使用配置文件的R脚本,例如config.xml,将这样的脚本提交给作业调度程序的最佳方法是什么(例如,使用qsub)?

我希望能够以与我使用相同的方式使用脚本和文件,例如嵌入在bash脚本中的C或Fortran可执行文件.

我目前如何使用FORTRAN:

下面是我使用编译的Fortran可执行文件的方法的示例,fex如下所示我将调用fscript.sh:

!#/bin/bash/
mpirun [arguments] "fex" -f $1
Run Code Online (Sandbox Code Playgroud)

以上内容fscript.sh可以发送到集群,其中包含读取配置文件的说明,如下所示:

qsub [arguments] fscript.sh 1 config.xml
Run Code Online (Sandbox Code Playgroud)

我目前如何以类似的方式使用R:

要以类似的方式运行R,我使用的是bash脚本 rscript.sh

#!/bin/bash
CONFIG=$1
env $CONFIG R --vanilla < myscript.R
Run Code Online (Sandbox Code Playgroud)

这可以在命令行运行,例如

qsub [arguments] rscript.sh config.xml
Run Code Online (Sandbox Code Playgroud)

哪里rscript.R包含类似的东西

library(XML)
config <- Sys.getenv("CONFIG")
config <- xmlList(xmlParse(config.xml))
myfunction(config)
Run Code Online (Sandbox Code Playgroud)

我的问题

  1. Rscript或编译器会提供比我目前使用的bash更强大的方法吗?
  2. 在哪种情况下哪一种比另一种更合适(利弊是什么)?
  3. 在这两种情况下,我如何传递配置文件?

到目前为止我做了什么

除了提出rscript.sh上面描述的bash脚本之外,我还阅读了教程和一些文档Rscript以及编译器,但我不清楚这些是否是一个优先于另一个的上下文.此外,还不清楚在任一上下文中传递配置文件的最佳方法.

这个问题与其他问题有关,例如,从R程序创建可执行文件的方法是什么,R编译器是否存在?.但是,我不认为使用编译代码是必不可少的.

compiler-construction r rscript

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

如何在Windows上调用使用scan()的脚本?

如何调用如下的R脚本

scan()
Run Code Online (Sandbox Code Playgroud)

在Windows?使用任何一个R或时Rscript,没有任何内容被读取 使用Rscriptlittler(在Linux上)脚本按预期工作.

# Doesn't work because stdin is already redirected
R --no-save < test.R

# Works on Linux, doesn't on Windows
Rscript test.R

# Works on Linux, doesn't exist in Windows
r test.R
Run Code Online (Sandbox Code Playgroud)

有没有办法在不改变R代码的情况下实现这一目标?

也许相关:为什么--interactiveWindows中没有开关?

windows r rscript

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

如何告诉摘要不要换行?

我正在尝试获取摘要以不包装其输出。但是,当我使用 5 列数据调用摘要时,它将第 5 列放在单独的行上。我希望有一种方法比手动打印迭代摘要返回的对象更容易。

此致,

约瑟夫

绘图程序

#!/usr/bin/Rscript
noneData <- read.csv("query.log", header=FALSE, sep="\t");
cnames = c( 'vids', 'partitions', 'localvert', 'remotevert',
                    'cachehits', 'responsetime' );
colnames(noneData) <- cnames;
cachenames = c('1', '2', '3', '4', '5');
responseCompare = data.frame(
   noneData$responsetime/1000000,
   noneData$responsetime/1000000,
   noneData$responsetime/1000000,
   noneData$responsetime/1000000,
   noneData$responsetime/1000000
   );
colnames(responseCompare) <- cachenames;
print("Response Times");
summary(responseCompare);
Run Code Online (Sandbox Code Playgroud)

./plotit.r #输出:

[1] "Response Times"
       1                  2                  3                  4         
 Min.   :   0.215   Min.   :   0.215   Min.   :   0.215   Min.   :   0.215
 1st Qu.: 395.202   1st Qu.: 395.202   1st Qu.: 395.202   1st …
Run Code Online (Sandbox Code Playgroud)

r rscript

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

从命令行运行R脚本不会执行代码

我已经尝试了Rscript和R CMD BATCH.

例如,如果我运行这个简单的R脚本:

test <- function(){
  print("test")
}
Run Code Online (Sandbox Code Playgroud)

通过使用

> R CMD BATCH test.R
Run Code Online (Sandbox Code Playgroud)

我得到以下test.Rout文件:

R version 3.0.1 (2013-05-16) -- "Good Sport"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' …
Run Code Online (Sandbox Code Playgroud)

r rscript

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

R作为脚本运行时在validObject(.Object)中出错,但在控制台中则不行

以下代码在R控制台(R 3.3.0)中正常工作:

m = system.file("external/pores_1.mtx", package = "Matrix")
x = Matrix::readMM(m)
Run Code Online (Sandbox Code Playgroud)

我可以把它放在一个脚本中,它可以在R控制台中正常运行:

source("test.R")
Run Code Online (Sandbox Code Playgroud)

然而,当我执行它Rscript --vanilla test.R或者Rscript test.R,我得到一个错误:

Error in validObject(.Object) : 
  invalid class “dgTMatrix” object: Not a valid 'Mnumeric' class object
Calls: <Anonymous> -> new -> initialize -> initialize -> validObject
Execution halted
Run Code Online (Sandbox Code Playgroud)

我不知道这是否与该特定功能有关.我猜这与Rscript的工作原理有关,但我以前用过各种其他库和函数,从未见过这样的东西.知道发生了什么事吗?

r sparse-matrix rscript

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

从其他脚本调用 R 脚本

我想清理我的 R 代码,因此我想编写几个 RScript 并在那里调用函数,但我不知道如何做到这一点。

例如,我的主类中有以下调用:

G = function(x) {
    return(-exp(-1i * x) * Conj(H(x+pi)) ) 
}
Run Code Online (Sandbox Code Playgroud)

函数 H 在另一个 R 脚本中编写如下

H = function(x) {
    return (exp(-1i * x / 2) * cos(x / 2) )
}
Run Code Online (Sandbox Code Playgroud)

两个 RScript 都在同一个项目中,但我的主类无法识别函数 H.

我的错误在哪里?

感谢期待

马蒂亚斯

r rscript

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

使用 R 的 Cookie 请求

我正在尝试将以下 curl 命令转换为 httr/RCurl 以将 cookie 转换为 R。但我不确定如何使用 getURL(...) 或 GET(. ..)

curl --data "j_username=username&j_password=password" http://localhost:8080/myApp/j_spring_security_check --cookie-jar cookies.txt
Run Code Online (Sandbox Code Playgroud)

我能够获取上面命令行 curl 命令创建的 cookie 信息并将其粘贴到 GET 请求中(它有效)。如果我可以在 R 中生成 cookie,那就方便了。

这是我的工作 httr get GET():

GET(dataURL,
   verbose(),
   add_headers("Content-type"="application/json",
               "Accept"="application/json",
               "Accept-Version"=" 1.0",
               "Cookie"="JSESSIONID=24BA7A80A02317AD2B6C87C8D10B6787"
               )
    )
Run Code Online (Sandbox Code Playgroud)

r spring-security rscript rcurl httr

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

为什么Rscript不能与as()函数一起使用?

我正在使用R脚本进行一些统计计算。当我使用交互式终端时,此代码可以正常工作:

# Load libraries to read ods tables, calcs alpha and pearson
print("Loading libraries...")
library(readODS)
# library(arules)
# library(arulesViz);
print("Done!")

# Read table ods
print("Calc results...")
table_votes = read_ods("table.ods", col_names = TRUE)

# Remove columns from dataframe where ALL values are NA
table_votes <- table_votes[,colSums(is.na(table_votes))<nrow(table_votes)]

matrix_votes <- as.matrix(table_votes)
matrix_votes[!is.finite(matrix_votes)] <- 0
transactions <- as(matrix_votes, 'transactions')
apriori(transactions)
Run Code Online (Sandbox Code Playgroud)

但是,当我将此代码传递给文件以与Rscript一起运行时,我的as()函数存在问题:

“错误:找不到函数'as'”

我使用R -r my_file.R ...解决了这个问题,但是为什么Rscript无法使用?

r rscript

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

如何在R v 3.3.3上安装rbindlist

install.packages("rbindlist")install.packages中的警告:包'rbindlist'不可用(对于R版本3.3.3)

我正在使用R版本3.3.3并尝试安装rbindist软件包,但此版本不提供.我知道有些人可以通过先安装其他软件包来下载它.我想知道是否有人知道要运行什么代码来获取rbindlist?

我是Twitter用户的地理位置,没有rbindlist就无法这样做

r geolocation rscript rbind

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