安德鲁·格尔曼(Andrew Gelman)最近对R缺乏一个简单的升级过程感到遗憾(可能在Windows上比Linux更相关).有没有人有一个很好的技巧来进行升级,从安装软件到复制所有设置/包?
这个建议包含在评论中,是我最近一直在使用的.首先安装新版本,然后在旧版本中运行:
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
Run Code Online (Sandbox Code Playgroud)
在新版本中遵循以下内容:
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
Run Code Online (Sandbox Code Playgroud) 我想用R拟合某种多变量时间序列模型
以下是我的数据示例:
u cci bci cpi gdp dum1 dum2 dum3 dx
16.50 14.00 53.00 45.70 80.63 0 0 1 6.39
17.45 16.00 64.00 46.30 80.90 0 0 0 6.00
18.40 12.00 51.00 47.30 82.40 1 0 0 6.57
19.35 7.00 42.00 48.40 83.38 0 1 0 5.84
20.30 9.00 34.00 49.50 84.38 0 0 1 6.36
20.72 10.00 42.00 50.60 85.17 0 0 0 5.78
21.14 6.00 45.00 51.90 85.60 1 0 0 5.16
21.56 9.00 38.00 52.60 86.14 0 …
Run Code Online (Sandbox Code Playgroud) 我想知道部署R的最佳方法.Matlab有"matlab编译器"(MCR).关于R的过去已经讨论了将R编译成C或C++的类似内容.有没有人有任何由John Garvin在Rice开发的R to C编译器(RCC)的经验?
我已经研究过了,它似乎是唯一一个将R代码编译成可执行代码的项目.据我所知,它还没有被使用.
[编辑1:]:要清楚,我知道有R和R(rJava,rcpp,Rpy等)的C和C++(以及Java,Python等)接口.我想知道在不事先安装R的情况下编译和部署R代码的具体方法.
[编辑2:]:John Mellor-Crummey告诉我他们仍在为RCC工作,并希望在4个月左右(最早)提供.如果我发现其他任何问题,我会进一步更新.
我正在努力学习R的XML
包装.我正在尝试从books.xml示例xml数据文件创建data.frame.这是我得到的:
library(XML)
books <- "http://www.w3schools.com/XQuery/books.xml"
doc <- xmlTreeParse(books, useInternalNodes = TRUE)
doc
xpathApply(doc, "//book", function(x) do.call(paste, as.list(xmlValue(x))))
xpathSApply(doc, "//book", function(x) strsplit(xmlValue(x), " "))
xpathSApply(doc, "//book/child::*", xmlValue)
Run Code Online (Sandbox Code Playgroud)
这些xpathSApply中的每一个都没有让我接近我的意图.如何进入格式良好的数据框架?
编辑: Clojure基准测试在基准测试游戏中有所提升.
我已经在社区维基上提出了这个问题并邀请其他人更新.
有人知道Clojure表现的基准吗?
我已经做了一些我自己的(虽然没有什么太正式),与其他功能语言(尝试Haskell和OCaml)相比,它不太公平.但是,与Java或JVM上的其他语言(例如Scala)相比,它看起来如何呢?它与其他Lisps相比如何?
关于在那里添加Clojure 的计算机语言基准游戏论坛上有一些讨论,但还没有完成任何工作.
编辑:我将继续添加到此,因为我发现更多:
@igouy指出,clojure的基准脚本是由github上的jafingerhut 创建的.
来自Clojure讨论组的两个非常相关的主题:
另外,这些博文:
最后,有关stackoverflow的相关问题:
这些讨论中的大多数让我认为Clojure的性能与JVM上运行的其他语言相比非常有利,尽管毫无疑问,在比较语言时可能很难得出一个广泛的结论,因为它们的性能可能会有很大差异依赖于任务.
编辑:
Lau Jensen刚刚在他的博客上发表了一篇关于使用JVM语言进行基准测试的讨论:"正确地进行基准测试".
我正在尝试读取具有不同行长度的文本文件:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我在read.table中使用了参数fill = TRUE,所以:
data<-read.table("test",sep="\t",fill=TRUE)
Run Code Online (Sandbox Code Playgroud)
不幸的是,为了评估最大行长度,read.table只读取文件的前5行,并生成一个如下所示的对象:
data
V1 V2 V3 V4 V5
1 1 NA NA NA NA
2 1 2 NA NA NA
3 1 2 3 NA NA
4 1 2 3 4 NA
5 1 2 3 4 5
6 1 …
Run Code Online (Sandbox Code Playgroud) 我开始测试Haskell的线性代数.有没有人为此目的提供最佳套餐的建议?使用Haskell进行基本矩阵操作的任何其他好资源?
haskell wiki 为此列出了几个资源.我目前专注于hmatrix和bindings-gsl,两者看起来都很有希望.
我有一只熊猫DataFrame
,我想绘制一个包含图例的条形图.
import pylab as pl
from pandas import *
x = DataFrame({"Alpha": Series({1: 1, 2: 3, 3:2.5}), "Beta": Series({1: 2, 2: 2, 3:3.5})})
Run Code Online (Sandbox Code Playgroud)
如果我直接调用plot,那么它将图例放在图上方:
x.plot(kind="bar")
Run Code Online (Sandbox Code Playgroud)
如果我在图中转换图例并尝试稍后添加它,那么它不会保留与DataFrame中两列相关联的颜色(参见下文):
x.plot(kind="bar", legend=False)
l = pl.legend(('Alpha','Beta'), loc='best')
Run Code Online (Sandbox Code Playgroud)
在Pandas DataFrame的matplotlib图中包含图例的正确方法是什么?
S-Plus在其GUI中内置了一个出色的对象浏览器和数据编辑器.它允许您一目了然地轻松查看工作区中的所有对象,并按名称,大小或日期对其进行排序.
据我所知,R的唯一等价物是JGR中的对象浏览器(http://jgr.markushelbig.org/).
否则我只是在大多数时候使用search()和ls()命令(当我有很多对象时,还有grep()).
# trivial example of routine:
search()
utils.list <- ls(pos="package:utils")
utils.list[grep("edit",utils.list)]
Run Code Online (Sandbox Code Playgroud)
有没有人有任何浏览R工作区的技巧或建议?有没有点击式解决方案?
是否有函数来获取矩阵的索引(行号和列号)?
假设我有一个简单的矩阵:
a <- matrix(1:50, nrow=5)
Run Code Online (Sandbox Code Playgroud)
例如,是否有一种简单的方法可以获得数字为"23"的c(3,5)之类的东西?在这种情况下,说which(a==23)
只返回23.
这似乎有效,但我确信有更好的方法:
matrix.index <- function(a, value) {
idx <- which(data.frame(a)==value)
col.num <- ceiling(idx/nrow(a))
row.num <- idx - (col.num-1) * nrow(a)
return(c(row.num, col.num))
}
> matrix.index(a, 23)
[1] 3 5
> matrix.index(a, 50)
[1] 5 10
Run Code Online (Sandbox Code Playgroud)