小编Ric*_*ton的帖子

R中的图像图太大了

我有一个65,000乘160矩阵,然后我用R中的图像(X)转换成图像.

我还使用选项useRaster = TRUE,这使得绘图批次更快,文件也更小.

但是,文件大小仍然相当大~60 Mb.无论如何要控制R中图像的文件大小?如果是这样,我会喜欢听到如何以及通过约束文件大小而失去多少分辨率.

该文件创建为pdf文件,代码如下:

# ----- Define a function for plotting a matrix ----- #
myImagePlot <- function(x, filename, ...){
  dev = "pdf"
  #filename = '/home/dnaiel/test.pdf'
  if(dev == "pdf") { pdf(filename, version = "1.4") } else{}
     min <- min(x)
     max <- max(x)
     yLabels <- rownames(x)
     xLabels <- colnames(x)
     title <-c()
  # check for additional function arguments
  if( length(list(...)) ){
    Lst <- list(...)
    if( !is.null(Lst$zlim) ){
       min <- Lst$zlim[1]
       max <- Lst$zlim[2]
    }
    if( !is.null(Lst$yLabels) ){
       yLabels <- …
Run Code Online (Sandbox Code Playgroud)

plot r image matrix

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

为什么R gbm模型预测与模型匹配不匹配?

我正在使用插入符合gbm模型.当我打电话时trainedGBM$finalModel$fit,我得到的输出看起来是正确的.

但是当我打电话时predict(trainedGBM$finalModel, origData, type="response"),我会得到非常不同的结果,predict(trainedGBM$finalModel, type="response")即使附加了origData,结果也会产生不同的结果.根据我的思维方式,这些调用应该产生相同的输出.有人可以帮我识别问题吗?

library(caret)
library(gbm)

attach(origData)
gbmGrid <- expand.grid(.n.trees = c(2000), 
                       .interaction.depth = c(14:20), 
                       .shrinkage = c(0.005))
trainedGBM <- train(y ~ ., method = "gbm", distribution = "gaussian", 
                    data = origData, tuneGrid = gbmGrid, 
                    trControl = trainControl(method = "repeatedcv", number = 10, 
                                             repeats = 3, verboseIter = FALSE, 
                                             returnResamp = "all"))
ntrees <- gbm.perf(trainedGBM$finalModel, method="OOB")
data.frame(y, 
           finalModelFit = trainedGBM$finalModel$fit, 
           predictDataSpec = predict(trainedGBM$finalModel, origData, type="response", n.trees=ntrees), 
           predictNoDataSpec = predict(trainedGBM$finalModel, type="response", n.trees=ntrees))
Run Code Online (Sandbox Code Playgroud)

上面的代码产生以下部分结果:

   y …
Run Code Online (Sandbox Code Playgroud)

r machine-learning predict r-caret

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

使用附加时在R中命名冲突

我感觉好像经常在R中,我在附加的数据帧和其他对象之间发现奇怪的命名冲突,附加/分离不能按预期工作(只是附加了相同数据帧的两个副本,甚至不确定它们是否相同)和整个主持的软键入语言特定问题.一小时前工作的代码突然产生新的错误等.

处理这类东西有最好的做法吗?如果我坚持使用单个字母命名数据帧然后根本不附加,我是否会错过效率?

r

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

来自getReturns的"二元运算符的非数字参数"错误

出于某种原因,我通常在Rstudios中运行的代码不再有效.我希望有人有类似的经历,并了解正在发生的事情.

getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31')
Run Code Online (Sandbox Code Playgroud)

这导致:

Error in unclass(e1) + unclass(e2) : 
non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)

我无法在线找到任何解决此问题的stackoverflow.另外,我从2014年7月开始看到最新的文档中没有提到任何内容:

http://cran.r-project.org/web/packages/stockPortfolio/stockPortfolio.pdf

有谁知道这里发生了什么?

finance r stocks quantmod

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

什么"at"符号@代表R?

我想知道R中"@"(在符号处)的功能.
让我们说:
在下面的例子中,如果我调用perf1@x.values它开始显示全部x.values.但我无法通过调用访问x.values的第二个值perf@x.values[2]!

> str(perf1)
Formal class 'performance' [package "ROCR"] with 6 slots
  ..@ x.name      : chr "False positive rate"
  ..@ y.name      : chr "True positive rate"
  ..@ alpha.name  : chr "Cutoff"
  ..@ x.values    :List of 1
  .. ..$ : num [1:3966] 0 0.0005 0.001 0.0015 0.0015 0.002 0.0025 0.0025 0.003 0.0035 ...
  ..@ y.values    :List of 1
  .. ..$ : num [1:3966] 0e+00 0e+00 0e+00 0e+00 5e-04 5e-04 5e-04 1e-03 1e-03 1e-03 ... …
Run Code Online (Sandbox Code Playgroud)

oop r s4

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

从if-else块分配值(它是如何工作的?)

最近发现你可以通过if-else块有条件地分配一个值.

y <- if(condition) 1 else 2
Run Code Online (Sandbox Code Playgroud)

我意识到这个用例是有限的:如果你有矢量化代码,你会使用该ifelse函数.有一个性能优势:if-else运行速度比ifelse我机器上的标量情况快35倍(尽管你需要多次调用它才能发现差异很大).

困扰我的是我无法弄清楚为什么这段代码有效 - 我很惊讶它不仅仅是抛出一个错误.

另一个例子表明,如果块的行为与函数类似 - 它们会自动返回块中的最后一个值(尽管您不能return在其中使用语句).

y <- if(TRUE) 
{
   y <- 3
   4
}    # y is 4
Run Code Online (Sandbox Code Playgroud)

基于此,我猜想当你输入if块时可能会创建另一个环境,但事实并非如此.

if(TRUE) sys.frames()    # NULL
Run Code Online (Sandbox Code Playgroud)

有人能告诉我引擎盖下发生了什么事吗?

if-statement r

0
推荐指数
2
解决办法
8115
查看次数

需要帮助将R的数字范围(例如:0-7)转换为平均值(例如:3.5)

这是我在R中使用的数据:

library(Sleuth2)
ex22.20
Run Code Online (Sandbox Code Playgroud)

我试图将"年"列从一系列数字(0-7)转换为两个数字之间的平均值(3.5)

任何帮助将不胜感激.

r

0
推荐指数
1
解决办法
625
查看次数

使用 caret 包进行 GBM 分类

当使用 caret 的 train 函数拟合 GBM 分类模型时,函数 predictionFunction 基于 0.5 的概率阈值将概率预测转换为因子。

      out <- ifelse(gbmProb >= .5, modelFit$obsLevels[1], modelFit$obsLevels[2])
      ## to correspond to gbmClasses definition above
Run Code Online (Sandbox Code Playgroud)

如果用户试图最大化 ROC 曲线下的面积 (AUROC),这种转换似乎为时过早。虽然敏感性和特异性对应于单个概率阈值(因此需要因子预测),但我更喜欢使用 gbmPredict 的原始概率输出来计算 AUROC。根据我的经验,我很少关心分类模型的校准;我想要信息量最大的模型,无论模型预测“1”与“0”的概率阈值如何。是否可以将原始概率强制用于 AUROC 计算?这看起来很棘手,因为无论使用什么汇总函数都会传递已经是二进制的预测。

r r-caret

0
推荐指数
1
解决办法
5547
查看次数

预处理插补R插入和预测

我注意到predict()只会在完整案例中创建预测.我已经包含medianImpute在preProcess选项中,例如:

train(outcome ~ ., 
        data = df,
        method = "rf", 
        tuneLength = 5,
        preProcess = c("YeoJohnson", "center", "scale", "medianImpute"),
        metric = 'ROC', 
        trControl = train_ctrl)
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着我应该在训练集之前对缺失的值进行估算?如果没有,我无法为测试集中的所有情况创建预测.我曾在Kuhn博士的书中读过,在交叉验证过程中应该进行预处理......谢谢!

r r-caret

0
推荐指数
1
解决办法
1928
查看次数

Java ArrayList中

如何找到ArrayList的中间部分?

java collections arraylist

-4
推荐指数
2
解决办法
4460
查看次数