小编I L*_*ode的帖子

Java数组排序下降?

是否有任何简单的方法按降序对数组进行排序,就像它们在Arrays类中按升序排序一样?

或者我必须停止懒惰并自己这样做:[

java arrays sorting int

255
推荐指数
10
解决办法
39万
查看次数

使用Rprofile.site中的.libPaths更改R默认库路径无法正常工作

我在Windows上运行R,而不是管理员.当我安装包时,以下命令不起作用:

> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable
Run Code Online (Sandbox Code Playgroud)

要安装软件包,我必须指定一个库位置:

install.packages("zoo", lib="C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)

要加载包,我还必须指定库位置:

library("zoo", lib.loc="C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)

所有这一切C:/software/Rpackages都没问题,但我想知道是否可以以某种方式添加到库路径,因此不必每次都输入它.

当我在网上搜索时,我发现一种方法是编辑Rprofile.site文件并添加行

.libPaths("C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)

但是,在执行此操作并启动RStudio之后,这就是我得到的输出

> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 
Run Code Online (Sandbox Code Playgroud)

.libPaths我加入命令Rprofile.site似乎并没有有任何影响!为什么会这样?或者更重要的是,如何解决问题以便我可以在不输入库位置的情况下安装和加载包?

注意:如果我启动RStudio,.libPaths()命令似乎按预期工作

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
Run Code Online (Sandbox Code Playgroud)

这不奇怪吗?

r library-path rstudio r-faq

186
推荐指数
8
解决办法
40万
查看次数

将grid.arrange()绘图保存到文件

我正在尝试绘制多个绘图,使用ggplot2它们进行排列grid.arrange().由于我设法找到某人描述我遇到的确切问题,因此我引用了链接中的问题描述:

当我使用ggsave()grid.arrange(),即

grid.arrange(sgcir1,sgcir2,sgcir3,ncol=2,nrow=2)
ggsave("sgcirNIR.jpg")
Run Code Online (Sandbox Code Playgroud)

我不保存网格图,而是保存最后一个ggplot.是否有任何方法可以通过grid.arrange()使用 ggsave()或类似的方式实际保存绘图?除了使用旧的方式

jpeg("sgcirNIR.jpg")
grid.arrange(sgcir1,sgcir2,sgcir3,ncol=2,nrow=2)
dev.off()
Run Code Online (Sandbox Code Playgroud)

相同的链接提供以下解决方案:

require(grid)
require(gridExtra)
p <- arrangeGrob(qplot(1,1), textGrob("test"))
grid.draw(p) # interactive device
ggsave("saving.pdf", p) # need to specify what to save explicitly
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何使用以下代码ggsave()保存grid.arrange()调用的输出,该代码取自链接:

library(ggplot2)
library(gridExtra)
dsamp <- diamonds[sample(nrow(diamonds), 1000), ] 

p1 <- qplot(carat, price, data=dsamp, colour=clarity)
p2 <- qplot(carat, price, data=dsamp, colour=clarity, geom="path")

g_legend<-function(a.gplot){
tmp <- ggplot_gtable(ggplot_build(a.gplot))
leg <- which(sapply(tmp$grobs, function(x) x$name) == …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gridextra

128
推荐指数
6
解决办法
8万
查看次数

接收器不会释放文件

我知道该sink()函数可用于将R输出转移到文件中,例如

sink('sink-closing.txt')
cat('Hello world!')
sink()
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的命令来关闭所有未完成的接收器?

下面,我详细说明我的问题.

假设我的R脚本sink()在R脚本中打开一个,但是在脚本关闭之前R脚本中出现错误sink().我可能多次运行R脚本,试图修复错误.最后,我想关闭所有接收器并打印到控制台.我该怎么办?

最后,为了具体,我提供了一个MWE来说明我面临的问题.

首先,我写了一个R脚本sink-closing.R,里面有错误.

sink('sink-closing.txt')

foo <- function() {
  cat(sprintf('Hello world! My name is %s\n', 
              a.variable.that.does.not.exist))
}

foo()

sink()
Run Code Online (Sandbox Code Playgroud)

接下来,我source多次使用R脚本,在我尝试查找并修复错误时错误地说了3次.

> source('~/Dropbox/cookbook/r-cookbook/sink-closing.R')
Error in sprintf("Hello world! My name is %s\n", a.variable.that.does.not.exist) : 
  object 'a.variable.that.does.not.exist' not found
Run Code Online (Sandbox Code Playgroud)

现在,假设我正在调试R脚本并想要打印到控制台.我可以sink()多次打电话来关闭早期的接收器.如果我调用它3次,那么我最终可以像以前一样打印到控制台.但我如何知道需要关闭多少水槽?

r sink

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

在Java中按元素求和两个数组

逐个元素对两个数组求和的最简单方法是什么?

我知道您可以使用for如下循环:

int[] a = {0, 1, 2};
int[] b = {3, 4, 5};
int[] c = new int[a.length];
for (int i = 0; i < a.length; ++i) {
    c[i] = a[i] + b[i];
}
Run Code Online (Sandbox Code Playgroud)

但是在MATLAB这样的语言中,你可以通过编写来逐个元素的数组求和c = a + b.在Java中有一种简单的方法吗?

想到的方法是使用Apache Commons Math中的RealVector类,但该方法相当冗长.

java arrays

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

计算R中因子的出现次数,报告零计数

我想计算数据帧中一个因子的出现次数.例如,要计算以下代码中给定类型的事件数:

library(plyr)
events <- data.frame(type = c('A', 'A', 'B'),
                       quantity = c(1, 2, 1))
ddply(events, .(type), summarise, quantity = sum(quantity))
Run Code Online (Sandbox Code Playgroud)

输出如下:

     type quantity
1    A        3
2    B        1
Run Code Online (Sandbox Code Playgroud)

但是,如果我知道,有三种类型的事件A,B并且C,我也希望看到计数C这是0?换句话说,我希望输出为:

     type quantity
1    A        3
2    B        1
3    C        0
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?感觉应该有一个函数被定义为在某个地方执行此操作.

以下是关于如何解决这个问题的两个不太好的想法.

想法#1:我知道我可以通过使用一个for循环来做到这一点,但我知道广泛说如果你使用for循环R,那么你做错了,必须有一个更好的方法来做到这一点.

想法#2:在原始数据框中添加虚拟条目.这个解决方案有效,但感觉应该有一个更优雅的解决方案.

events <- data.frame(type = c('A', 'A', 'B'),
                       quantity = c(1, 2, 1))
events <- rbind(events, data.frame(type = …
Run Code Online (Sandbox Code Playgroud)

r plyr

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

增加ggplot2散点图中可变大小点的大小

我正在绘制散点图,其中每个点具有与观察数量相对应的不同大小.下面是代码和图像输出的示例:

rm(list = ls())

require(ggplot2)

mydf <- data.frame(x = c(1, 2, 3),
                   y = c(1, 2, 3),
                   count = c(10, 20, 30))

ggplot(mydf, aes(x = x, y = y)) + geom_point(aes(size = count))
ggsave(file = '2013-11-25.png', height = 5, width = 5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这是相当不错的,但有没有办法增加所有点的大小?特别是,就目前而言,"10"的点太小,因此很难看到.

r ggplot2

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

为什么git push origin master绘制ASCII艺术?

当我跑步时git push origin master,我看到了一张非同寻常的ASCII图片.我跑过git push几百次,之前从未见过这个.这有什么解释吗?

$ git push origin master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 1.05 KiB | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: 
remote: ++++                               ++++
remote:   +++++++                     +++++++  
remote:      +++++++++++++++++++++++++++++     
remote:          +++++++++++++++++++++         
remote:                 +++++++                
remote:       +++                     +++      
remote:       ++++++     +++++     ++++++      
remote:        ++++++    +++++    ++++++       
remote:        +++++++    +++    +++++++       
remote:         ++++++++   +   ++++++++ …
Run Code Online (Sandbox Code Playgroud)

git bitbucket

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

在Julia中将float 2-D数组转换为整数2-D数组

我知道可以将a Float64转换为Int64 使用该convert函数.不幸的是,它在应用于convert二维阵列时不起作用.

julia> convert(Int64, 2.0)
2

julia> A = [1.0 2.0; 3.0 4.0]
2x2 Array{Float64,2}:
 1.0  2.0
 3.0  4.0

julia> convert(Int64, A)
ERROR: `convert` has no method matching convert(::Type{Int64}, ::Array{Float64,2
})
 in convert at base.jl:13
Run Code Online (Sandbox Code Playgroud)

如何将2-D浮点数组转换为2-D整数数组?

我尝试了什么

我可以使用以下代码来完成它,这有点冗长,但它的工作原理.我希望有一个更简单的方法来做到这一点.

julia> A = [1.0 2.0; 3.0 4.0]
2x2 Array{Float64,2}:
 1.0  2.0
 3.0  4.0

julia> B = Array(Int64, 2, 2)
2x2 Array{Int64,2}:
 4596199964293150115  4592706631984861405
 4604419156384151675                    0

julia> for i = 1:2
           for j = 1:2
               B[i,j] …
Run Code Online (Sandbox Code Playgroud)

arrays floating-point integer julia

7
推荐指数
3
解决办法
6950
查看次数

奇怪的错误:方法定义中省略的形式参数不能在签名中

我试图在一个R文件中定义泛型方法,并在另一个R文件中实现它们.但是我得到一个我不明白的错误.

问题:

  1. 错误的来源是什么?
  2. 我该如何修复错误?

内容BuyProbabilityGeneric.R:

setGeneric("FirstTimeBuyProbability",
        valueClass = "numeric",
        function(object, period, price) {
    standardGeneric("FirstTimeBuyProbability")
})

setGeneric("ReturningBuyProbability",
        valueClass = "numeric",
        function(object, period1, price1, period2, price2) {
    standardGeneric("ReturningBuyProbability")
})
Run Code Online (Sandbox Code Playgroud)

内容BuyProbabilityBasic.R:

setClass("BuyProbabilityBasic", representation(
        full.price.probability = "numeric",
        elasticity = "numeric"))

setMethod("FirstTimeBuyProbability",
        signature(object = "BuyProbabilityBasic", 
                period = "numeric", price = "numeric"), 
        function(object, t, price) {
    full.price.probability * price^elasticity
})

setMethod("ReturningBuyProbability",
        signature(object = "BuyProbabilityBasic", 
                period1 = "numeric", price1 = "numeric",
                period2 = "numeric", price2 = "numeric"), 
        function(object, period1, price1, period2, price2) { …
Run Code Online (Sandbox Code Playgroud)

r s4

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

标签 统计

r ×6

arrays ×3

ggplot2 ×2

java ×2

bitbucket ×1

floating-point ×1

git ×1

gridextra ×1

int ×1

integer ×1

julia ×1

library-path ×1

plyr ×1

r-faq ×1

rstudio ×1

s4 ×1

sink ×1

sorting ×1