小编Ada*_*and的帖子

为什么浮点数的整数表示提供对数的分段线性近似?

如果您正在阅读有关 20 世纪 90 年代图形学发展的新闻,您可能会关注 Jim Blinn 在IEEE 计算机图形与应用中的专栏“Jim Blinn 的角落”。1997 年夏天,您可能会在名为“浮点技巧”的专栏中打开您的问题。所有的技巧都基于 Blinn 从微软的两位老手 Steve Gabriel 和 Gideon Yuval 那里传授的以下知识:

\n

如果只处理正数,则将浮点数的位模式解释为整数,给出对数函数的分段线性近似

\n

我的问题是,浮点数是什么导致了这个特性?

\n

示范

\n
\n// These will result in undefined behavior\n// and are not the \'right\' way to do this\n// but I am following Blinn 1997 here\nint AsInteger(float f) {\n    return * ( int * ) &f;\n}\n\nfloat AsFloat(int i) {\n    return * ( float * ) &i;\n}\n\n// FISR demonstrating the logaritmic …
Run Code Online (Sandbox Code Playgroud)

math floating-point logarithm approximation

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

直接从R中的url读取gzipped csv

我正在寻找下载一个gzip压缩的csv并将其作为R对象加载而不先将其保存到磁盘.我可以使用压缩文件执行此操作,但似乎无法使用gzfile或使用它gzcon.

例:

grabRemote <- function(url) {
    temp <- tempfile()
    download.file(url, temp)
    aap.file <- read.csv(gzfile(temp), as.is = TRUE)
    unlink(temp)
    return(aap.file)
}
grabRemote("http://dumps.wikimedia.org/other/articlefeedback/aa_combined-20110321.csv.gz")
Run Code Online (Sandbox Code Playgroud)

下载包含维基百科文章反馈数据的(小)gz压缩文件(不重要,但只是表明它不是巨大的或邪恶的).

我的代码工作正常,但我觉得我错过了一些非常明显的东西,通过创建和销毁临时文件.

gzip r

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

如何正确处理R中的转义Unicode字符,例如em dash( - )

我在处理R中的转义unicode字符时遇到了问题,特别是在从MediaWiki API获取信息时遇到的问题.我会找到一个像JSON字符串

{"query":{"categorymembers":[{"ns":0,"title":"Banach\u2013Tarski paradox"}]}}
Run Code Online (Sandbox Code Playgroud)

哪个应该是完全有效的但是当fromJSON()我通过以下方式阅读时:

snip...
[1] "Banach\023Tarski paradox"
Run Code Online (Sandbox Code Playgroud)

起初我以为这只是一个RJSONIO问题,但我遇到类似的问题scan()readLines().我的猜测是我遗漏了一些非常基本的东西.

我实际上不能使用R 来给出完全可重现的示例,因为如果我通过write()(或某些等效函数)将"em\u2013dash"发送到文件,则R将自动转换为em破折号.所以这里.使用以下命令创建名为test1的文本文件:

"em\u2013dash" "em–dash" " em \u2013 dash"
Run Code Online (Sandbox Code Playgroud)

然后加载R(无论文件路径是什么):

> scan( file = "~/R/test1", what = "character", encoding = "UTF-8")
Read 3 items
[1] "em\\u2013dash"    "em–dash"          " em \\u2013 dash"
> readLines("~/R/test1", warn = FALSE, encoding = "UTF-8")
[1] "\"em\\u2013dash\" \"em–dash\" \" em \\u2013 dash\""
Run Code Online (Sandbox Code Playgroud)

添加的转义字符是导致我的问题的原因fromJSON().我可以把它们剥离出来,但我可能会在这个过程中打破其他东西,我想有一个更简单的解决方案.谢谢.

这是会话信息:

R version 2.14.1 (2011-12-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] C/en_US.UTF-8/C/C/C/C

attached base packages: …
Run Code Online (Sandbox Code Playgroud)

unicode r

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

R包pscl中的ideal()不会产生可重复的结果

我正在使用psclR中的软件包并尝试使其生成可测试/可重现的结果.我已经看到了在底层的C代码,它看起来好像GetRNGstate()PutRNGstate()被称为在正确的地方,但它似乎是不可能从MCMC模型重复输出.

我已经simulationResultSoDA包中打包了函数,因此我可以验证R端的每个模拟R的启动状态.

library(pscl)
library(SoDA)
run1 <- simulationResult(
  ideal(s109, 
    normalize=TRUE,
    maxiter = 500,
    thin = 10,
    burnin = 0),
  seed = 42)

run2 <- simulationResult(
  ideal(s109, 
    normalize=TRUE,
    maxiter = 500,
    thin = 10,
    burnin = 0),
  seed = 42)
Run Code Online (Sandbox Code Playgroud)

我们可以验证起始状态至少在R方面是相同的:

all.equal(run1@firstState, run2@firstState)
Run Code Online (Sandbox Code Playgroud)

但输出是不同的:

all.equal(run1@result$xbar, run2@result$xbar)
Run Code Online (Sandbox Code Playgroud)

我可以增加迭代次数,但如果RNG状态得到传播则这并不重要.我错过了一些非常简单的事吗?谢谢.

编辑:我还应该注意all.equal(run1@lastState, run2@lastState)(每次运行的结束状态)应该是相同的但它们最终会有所不同.我的猜测是,被C称为R RNG功能外应急的一些源被撞击的倍那些RNG函数被调用.好奇.

EDIT2

我还应该在OS X 10.8.4上使用pscl 1.04.4添加我的R 3.0.1.

r mcmc pscl

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

按变量中的共享值聚合行

我有一个有点愚蠢的问题.如果我有一个矩阵(或数据框,哪个更容易使用),如:

Year  Match
2008   1808
2008 137088
2008      1
2008  56846
2007   2704
2007 169876
2007  75750
2006   2639
2006 193990
2006      2
Run Code Online (Sandbox Code Playgroud)

而且我想总结这些年来的每一场比赛(所以,例如,2008年的比赛是这样的,2008 195743我将如何做到这一点?我脑子里有一些解决方案,但它们都是不必要的复杂和R趋势有一些更简单的解决方案隐藏在某个地方.

您可以使用以下内容生成相同的矩阵:

structure(c(2008L, 2008L, 2008L, 2008L, 2007L, 2007L, 2007L, 
2006L, 2006L, 2006L, 1808L, 137088L, 1L, 56846L, 2704L, 169876L, 
75750L, 2639L, 193990L, 2L), .Dim = c(10L, 2L), .Dimnames = list(
NULL, c("Year", "Match")))
Run Code Online (Sandbox Code Playgroud)

谢谢你尽你所能的帮助.

aggregate r plyr

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

标签 统计

r ×4

aggregate ×1

approximation ×1

floating-point ×1

gzip ×1

logarithm ×1

math ×1

mcmc ×1

plyr ×1

pscl ×1

unicode ×1