我是Python的新手,来自R世界.我正在尝试使用SciPy将分布拟合到样本数据并取得了很好的成功.我可以distribution.fit(data)回报理智的结果.我一直无法做的是创建拟合优度统计数据,这是我习惯使用fitdistrplusR中的包.是否有一种通用的方法来比较SciPy中许多不同发行版的"最佳拟合"?
我正在寻找像Kolmogorov-Smirnov测试或Cramer-von Mises或Anderson-darling测试的东西
R有一个方便的跨平台tar()函数,可以tar和gzip文件.看来这个函数是为了整个目录而设计的.我希望使用此函数来tar和压缩目录的子集或单个文件.但是,我似乎无法做到这一点.我期待以下内容在当前工作目录中查找单个csv文件:
tar( "tst.tgz", "myCsv.csv", compression="gzip" )
Run Code Online (Sandbox Code Playgroud)
那么只能在目录上使用tar()函数吗?
我暂时通过创建一个临时目录,复制我的文件,然后整个临时目录来解决这个问题.但我希望有一个更简单的解决方案.这不需要复制文件,这对于大文件来说有些耗时.
我经常在从关系数据库中提取的数据上创建非参数统计(黄土,内核密度等).为了使数据管理更容易,我想将R输出存储在我的数据库中.使用简单的数字或文本数据框很容易,但我还没有弄清楚如何将R对象存储回我的关系数据库中.那么有没有办法将内核密度的向量存储回关系数据库?
现在我通过将R对象保存到网络驱动器空间来解决这个问题,以便其他人可以根据需要加载对象.
Hadley把我转向了plyr包,我发现自己一直在使用它来做"分组"的东西.但我发现自己必须始终重命名结果列,因为它们默认为V1,V2等.
这是一个例子:
mydata<-data.frame(matrix(rnorm(144, mean=2, sd=2),72,2),c(rep("A",24),rep("B",24),rep("C",24)))
colnames(mydata) <- c("x_value", "acres", "state")
groupAcres <- ddply(mydata, c("state"), function(df)c(sum(df$acres)))
colnames(groupAcres) <- c("state","stateAcres")
Run Code Online (Sandbox Code Playgroud)
有没有办法让ddply为我命名结果列,所以我可以省略最后一行?
如果这是多余的或超级基本的,请原谅我.我是从R来到Python/Numpy并且很难在脑子里翻看东西.
我有一个维度数组,我想使用另一个索引值的n维数组进行排序.我知道我可以将它包装在一个循环中,但似乎应该有一个非常简洁的Numpyonic方式来击败这个提交.这是我设置n = 2的问题的示例代码:
a1 = random.standard_normal(size=[2,5])
index = array([[0,1,2,4,3] , [0,1,2,3,4] ])
Run Code Online (Sandbox Code Playgroud)
所以现在我有一个2 x 5的随机数组和一个2 x 5的索引.我现在已经阅读了take()大约10次的帮助,但很明显,我的大脑并没有去研究它.
我以为这可能会让我在那里:
take(a1, index)
array([[ 0.29589188, -0.71279375, -0.18154864, -1.12184984, 0.25698875],
[ 0.29589188, -0.71279375, -0.18154864, 0.25698875, -1.12184984]])
Run Code Online (Sandbox Code Playgroud)
但这显然只重新排序了第一个元素(我认为是因为扁平化).
有关我如何从我所处的位置获得的解决方案,该解决方案将索引的元素0对a1的元素0进行排序...元素n?
我用ggplo2创建了一个很好的facet_wrap密度图.我希望每个面板都有x和y轴标签,而不是只有左侧的y轴标签和底部的x标签.我现在拥有的是这样的:
library(ggplot2)
myGroups <- sample(c("Mo", "Larry", "Curly"), 100, replace=T)
myValues <- rnorm(300)
df <- data.frame(myGroups, myValues)
p <- ggplot(df) +
geom_density(aes(myValues), fill = alpha("#335785", .6)) +
facet_wrap(~ myGroups)
p
Run Code Online (Sandbox Code Playgroud)
哪个回报:
alt text http://www.cerebralmastication.com/wp-content/uploads/2009/10/3stooges.png
看起来这应该很简单,但我的Google Fu太穷了,无法找到答案.
我在多节点Linux集群上运行R. 我想使用脚本或批处理模式在R上运行我的分析,而不使用MPI或snow等并行计算软件.
我知道这可以通过划分输入数据来完成,使得每个节点运行不同的数据部分.
我的问题是我该如何解决这个问题呢?我不确定如何编写脚本代码.一个例子非常有用!
到目前为止,我一直在使用PBS运行我的脚本,但它似乎只在一个节点上运行,因为R是一个单线程程序.因此,我需要弄清楚如何调整我的代码,以便将人工分配给所有节点.
这是我到目前为止所做的事情:
1)命令行:
> qsub myjobs.pbs
Run Code Online (Sandbox Code Playgroud)
2)myjobs.pbs:
> #!/bin/sh
> #PBS -l nodes=6:ppn=2
> #PBS -l walltime=00:05:00
> #PBS -l arch=x86_64
>
> pbsdsh -v $PBS_O_WORKDIR/myscript.sh
Run Code Online (Sandbox Code Playgroud)
3)myscript.sh:
#!/bin/sh
cd $PBS_O_WORKDIR
R CMD BATCH --no-save my_script.R
Run Code Online (Sandbox Code Playgroud)
4)my_script.R:
> library(survival)
> ...
> write.table(test,"TESTER.csv",
> sep=",", row.names=F, quote=F)
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激!谢谢!
-CC
我正在尝试使用R来挂钩GSRad项目中的Java代码.GSRad Java代码可以在线获得,并作为One-Jar项目jar(直到今天我还不熟悉One-Jar).我可以使用以下命令运行One-Jar文件(在从上面的链接解压缩文件之后):
java -jar gsrad_sample.jar
Run Code Online (Sandbox Code Playgroud)
当我弹出gsrad_sample.jar文件时,我在/ lib /目录中看到一个名为clima_GSRAD-1.0.0.jar的jar,其中包含我想要与R挂钩的类文件.我已经拿出了我喜爱的jar和尝试以下,无济于事:
library(rJava)
.jinit()
.jaddClassPath( "/home/jal/Documents/DSSAT/gsrad/clima_GSRAD-1.0.0.jar" )
.jnew( "cra/clima/gsrad/GSRBristowCampbellStrategy" )
Run Code Online (Sandbox Code Playgroud)
关于我如何挂钩clima_GSRAD-1.0.0.jar中的类的任何提示?我很沮丧.
编辑
GSRad网站需要注册,这很烦人.其中包含了Java包的Doxygen文档以及单瓶瓶文件的完整的zip文件,请点击这里,如果你弹出打开有我想要挂钩类的罐子是这一个.
是否有一个简单的R习惯用于获取给定年份中的日期向量?除了闰年之外,我可以做以下事情.
dtt <- as.Date( paste( as.character(year), "-1-1", sep="") ) + seq( 0,364 )
Run Code Online (Sandbox Code Playgroud)
显然,我可以添加一行来过滤掉(年+ 1)中的任何值,但我猜测有更短的方法可以做到这一点.