Stan是Gelman等人的新贝叶斯分析软件.
我猜,RStan是一种从内部呼叫Stan的方法.
Will Stan/RStan是否可以在配备Linux操作系统的超级计算机上运行,如果可以,它可以利用超级计算机的多处理器?有人告诉我,WinBUGS不会在Linux机器上运行和/或无法利用超级计算机的多处理器.
我正在寻找一种加速贝叶斯分析的方法 - 从几周到几天/小时.
有没有办法print在函数内部显示或显示变量的值,而不是在调用函数后在函数外部打印值?
我几乎可以肯定存在并认为代码被调用reveal或类似的东西,但我不记得正确的术语.
my.function <- function(x) {
y <- x^2
# reveal(y)
# display(y)
# desired result is to print or display here:
# [1] 16
cat(y)
print(y)
return(y)
}
x <- 4
my.function(x)
#16[1] 16
#[1] 16
Run Code Online (Sandbox Code Playgroud)
cat(y),print(y)以及return(y)功能之外的所有打印.谢谢你的任何建议.
编辑
我在这里发现了类似的问题:
https://stat.ethz.ch/pipermail/r-help/2002-November/027348.html
Peter Dalgaard对该问题的回答是取消选中标签buffered output下的一个Misc选项.但是,这似乎并不适用于我的情况.也许这些问题是无关的.
我有一个如下数据集.我想用1来替换两个1之间的所有点,如期望结果所示.我可以regex在基地做这个R吗?
我试过了:
regexpr("^1\\.1$", my.data$my.string, perl = TRUE)
Run Code Online (Sandbox Code Playgroud)
这是c#中的解决方案
谢谢你的任何建议.
my.data <- read.table(text='
my.string state
................1...............1. A
......1..........................1 A
.............1.....2.............. B
......1.................1...2..... B
....1....2........................ B
1...2............................. C
..........1....................1.. C
.1............................1... C
.................1...........1.... C
........1....2.................... C
......1........................1.. C
....1....1...2.................... D
......1....................1...... D
.................1...2............ D
', header = TRUE, na.strings = 'NA', stringsAsFactors = FALSE)
desired.result <- read.table(text='
my.string state
................11111111111111111. A
......1111111111111111111111111111 A
.............1.....2.............. B
......1111111111111111111...2..... B
....1....2........................ B
1...2............................. C
..........1111111111111111111111.. C
.111111111111111111111111111111... C
.................1111111111111.... C …Run Code Online (Sandbox Code Playgroud) 是否可以将MSWord 2010文件读入R?我有Windows 7和戴尔PC.
我正在使用这条线:
my.data <- readLines('c:/users/mark w miller/simple R programs/test_for_r.docx')
Run Code Online (Sandbox Code Playgroud)
尝试读取包含以下文本的MSWord文件:
A 20 1000 AA
B 30 1001 BB
C 10 1500 CC
Run Code Online (Sandbox Code Playgroud)
我收到一条警告信息:
警告消息:在readLines("c:/ users/mark w miller/simple R programs/test_for_r.docx")中:在'c:/ users/mark w miller/simple R programs/test_for_r.docx'上找到不完整的最终行
并且my.data似乎是胡言乱语:
# [1] "PK\003\004\024" "¤l" "ÈFÃË‹Átí"
Run Code Online (Sandbox Code Playgroud)
我知道通过这个简单的例子,我可以轻松地将MSWord文件转换为其他格式.但是,我的实际数据文件包含几十年前输入的复杂表格,然后再扫描成pdf文档.原始纸质文档的年龄和原始文件中的不完善,打字和/或扫描过程导致一些字母和数字不是很清楚.到目前为止,将pdf文件转换为MSWord似乎是正确翻译表格中最成功的.将MSWord文件转换为Excel或富文本等并不是很成功.即使在转换为MSWord之后,生成的文件也非常复杂并且包含许多错误.我想如果我能将MSWord文件读入R中,这可能是编辑和纠正它们的最有效方法.
我知道'package tm',我想可以将MSWord文件读入R,但我有点担心使用它,因为它似乎需要安装第三方软件.
谢谢你的任何建议.
我一直在努力通过Dirk Eddelbuettel的Rcpp教程:
http://www.rinfinance.com/agenda/
我已经学会了如何在目录中保存C++文件并调用它并从R中运行它.我运行的C++文件名为'logabs2.ccp',其内容直接来自Dirk的幻灯片之一:
#include <Rcpp.h>
using namespace Rcpp;
inline double f(double x) { return ::log(::fabs(x)); }
// [[Rcpp::export]]
std::vector<double> logabs2(std::vector<double> x) {
std::transform(x.begin(), x.end(), x.begin(), f);
return x;
}
Run Code Online (Sandbox Code Playgroud)
我用这个R代码运行它:
library(Rcpp)
sourceCpp("c:/users/mmiller21/simple r programs/logabs2.cpp")
logabs2(seq(-5, 5, by=2))
# [1] 1.609438 1.098612 0.000000 0.000000 1.098612 1.609438
Run Code Online (Sandbox Code Playgroud)
我在R GUI中运行Windows 7计算机上的代码,默认情况下似乎是安装的.我还安装了最新版本的Rtools.上面的R代码似乎需要相对较长的时间才能运行.我怀疑大部分时间都用于编译C++代码,而且一旦编译C++代码,它就会非常快速地运行. Microbenchmark当然表明Rcpp减少了计算时间.
我从来没有使用过C++,但我知道当我编译C代码时,我会得到一个*.exe文件.我从一个名为logabs2.exe但找不到的文件中搜索了我的硬盘.我想知道如果logabs2.exe创建文件,上述C++代码是否可能运行得更快.是否可以创建一个logabs2.exe文件并将其存储在某个文件夹中,然后每当我想使用它时让Rcpp调用该文件?我不知道这是否合理.如果我可以在*.exe文件中存储C++函数,那么每次我想要将它与Rcpp一起使用时我可能不需要编译该函数,那么Rcpp代码可能会更快.
对不起,如果这个问题没有意义或是重复的话.如果可以将C++函数存储为*.exe文件,我希望有人会告诉我如何修改上面的R代码来运行它.感谢您对此的任何帮助,或直接告诉我为什么我的建议不可行或不推荐.
我期待看到德克的新书.
评论放慢了R吗?
关于python,StackOverflow上已经问了两次这个问题:
评论会减慢解释语言的速度吗? 过度评论代码会减慢执行速度吗?
因为python答案似乎是'不'.我不太了解两种语言之间的差异,无法知道这些答案的相关性R.
这是一个关于白色空间的类似问题R.答案似乎是'不'.
这个问题或许早些时候得到了回答,但我没有看到答案.
我有一个由数字和缺失值组成的数据集.一行是一个百分比.下面是一小组假数据,其中AA,BB和CC是列名.此数据集中的第三行是百分比.
AA BB CC
234 432 78
1980 3452 2323
91.1 90 93.3
34 123 45
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当我读取数据集时,AA和CC是数字,BB是整数.我猜某个地方90.0被舍入到90.如果我没有指定BB是数字,这会导致基本算术的问题吗?
我相信如果dd = 1且ee = 2并且两者都是整数,则C语言表示dd/ee = 0,而R表示dd/ee = 0.5.
下面是一系列简单的数学运算,无论数据是数字还是整数,所有似乎都表明R中的答案都没有改变.尽管如此,我一直认为在读取数据时指定所有变量都是数字是明智的.使用Google我发现了一个或两个数据类型似乎有所作为的例子,但不是下面的.
aa <- c(1,2,3,4,5,6,7)
bb <- 2
str(aa)
str(bb)
cc <- as.integer(aa)
dd <- as.integer(bb)
str(cc)
str(dd)
aa/bb
cc/dd
aa/dd
cc/bb
ee <- aa * aa
str(ee)
sum(ee/2)
ff <- cc * cc
str(ff)
sum(ff/2)
gg <- 4.14
hh <- ((aa * aa) * gg) / 2
hh
ii <- ((cc * cc) …Run Code Online (Sandbox Code Playgroud) 我有一串数字和字符
c2 = "list of 2nd C2 H2O 1 12 123"
Run Code Online (Sandbox Code Playgroud)
我需要摆脱所有数字,即实际数字,即1,12,123,但不是那些属于字符集的数字,即2nd,C2,H2O.
到目前为止,我提出的最佳解决方案是这个
gsub("? [[:digit:]]*", " ", c2)
"list of nd C2 H2O "
Run Code Online (Sandbox Code Playgroud)
它成功地摆脱了1 12 123,同时保留了C2 H2O.但是,我在第二节输掉了2.
我没办法.
谢谢!
我想创建以下vector两个嵌套sequences,加上字母a和b:
desired.data <- c('a1b1', 'a1b2', 'a1b3', 'a2b1','a2b2', 'a2b3',
'a3b1', 'a3b2', 'a3b3', 'a4b1','a4b2', 'a4b3',
'a5b1', 'a5b2', 'a5b3')
Run Code Online (Sandbox Code Playgroud)
我怀疑这是重复的,但我搜索Stack Overflow了一个小时没有成功.谢谢你的任何建议.
我正在使用文本格式读取数据文件readLines.第一个"列"是我不需要的复杂文本.下一列包含我需要的数据.第一个"列"和数据用冒号(:)分隔.我希望在第一个冒号处拆分每一行并删除生成的文本字符串,仅保留数据.
下面是一个示例数据文件.一个潜在的复杂因素是一行数据包含多个冒号.这条线可能在某些时候成为我的标题.所以,我可能不应该在每个结肠处分开,只是在第一个结肠处.
my.data <- "first string of text..: aa : bb : cc
next string ........ : 2 0 2
third string......1990: 7 6 5
last string : 4 2 3"
my.data2 <- readLines(textConnection(my.data))
my.data2
Run Code Online (Sandbox Code Playgroud)
我试过这里提供的代码:
和这里:
上面第一个链接的代码似乎只在第一行的第一个冒号处分开.第二个链接的代码可能会做我想要的,但对我来说太复杂到目前为止无法成功修改它.
这是我希望获得的数据,此时我可以使用一个非常简单的gsub语句简单地用空格替换第一行中剩余的冒号:
aa : bb : cc
2 0 2
7 6 5
4 2 3
Run Code Online (Sandbox Code Playgroud)
很抱歉,如果这是我未找到的帖子的副本,感谢您提供任何建议或帮助.