小编nic*_*ico的帖子

为什么这段代码会崩溃?

以下代码导致堆栈溢出但我不明白为什么......

int _tmain(int argc, _TCHAR* argv[])
{
    cout << "start";
    char bmp[1024][768][3];
for (int p = 0; p < 9000; ++p)
{
    for(int i = 0; i < 1024; ++i)
    {
        for(int j = 0; j < 768; ++j)
        {
            bmp[i][j][0] = 20;
        }

    }
}

cout << "Stop";


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++

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

访问R中的特定范围的矩阵元素

我有一个矩阵,我想要将某些特定元素归零.

例如,假设我的矩阵是:

m <- matrix(1:100, ncol=10)
Run Code Online (Sandbox Code Playgroud)

然后我有两个向量指示要保留哪些元素

m.from <- c(2, 5, 4, 4, 6, 3, 1, 4, 2, 5)
m.to   <- c(7, 9, 6, 8, 9, 5, 6, 8, 4, 8)
Run Code Online (Sandbox Code Playgroud)

因此,举例来说,我将第1行中的元素3:6保留,并将元素1:2和7:10设置为0.对于第2行,我将保持6:8,其余为零,依此类推.

现在,我可以轻松地做到:

for (line in 1:nrow(m))
    {
    m[line, 1:m.from[line]] <- 0
    m[line, m.to[line]:ncol(m)] <- 0
    }
Run Code Online (Sandbox Code Playgroud)

这给出了正确的结果.

然而,在我的特定情况下,我在~15000 x 3000矩阵上操作,这使得使用这种环路的时间非常长.

我怎样才能加快这段代码的速度?我虽然使用apply,但如何访问m.from和m.to的正确索引?

loops for-loop r matrix

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

plot(x,y,col =)在R中工作错误?

我有一个问题,理解情节中的col参数是如何工作的.

我们先来看看这个:

plot(collection[,"x"], collection[,"y"], 
     col=rainbow(21300)[order(collection[,"y"])],pch=".")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

颜色几乎与y轴对齐,但是并非完全对齐.

现在让我们这样做:

plot(collection[,"x"], collection[,"y"],
    col=rainbow(21300)[order(collection[,"x"])],pch=".")
Run Code Online (Sandbox Code Playgroud)

我希望颜色从左到右渐变,因为我在与表示x轴的数据相同的数据上对它们进行了排序.

但不,这是一个完整的混乱.

那么它是怎样工作的?

在此输入图像描述

plot r

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

dplyr 按列行汇总,按名称分组

让我们考虑这个简单的数据集

set.seed(12345)
df <- data.frame(a1 = rnorm(5), a2 = rnorm(5), a3 = rnorm(5), 
                 b1 = rnorm(5), b2 = rnorm(5), b3 = rnorm(5),
                 c1 = rnorm(5), c2 = rnorm(5), c3 = rnorm(5))
Run Code Online (Sandbox Code Playgroud)

看起来像

          a1         a2         a3         b1         b2         b3        c1          c2         c3
1  0.5855288 -1.8179560 -0.1162478  0.8168998  0.7796219  1.8050975 0.8118732  0.49118828  1.1285108
2  0.7094660  0.6300986  1.8173120 -0.8863575  1.4557851 -0.4816474 2.1968335 -0.32408658 -2.3803581
3 -0.1093033 -0.2761841  0.3706279 -0.3315776 -0.6443284  0.6203798 2.0491903 -1.66205024 -1.0602656
4 -0.4534972 -0.2841597  0.5202165  1.1207127 -1.5531374  0.6121235 1.6324456  1.76773385 …
Run Code Online (Sandbox Code Playgroud)

grouping r dplyr tidyselect

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

使用Poppler(C++)从PDF中提取文本

我正试图通过Poppler及其(缺乏)文档.

我想做的是一个非常简单的事情:打开一个PDF文件并阅读其中的文本.我接下来要处理文本,但这并不重要.

所以...我看到了这个poppler_page_get_text功能,它有点工作,但我必须指定一个选择矩形,这不是很方便.是不是只有一个非常简单的函数可以按顺序输出PDF文本(可能是逐行?).

c++ pdf text-extraction poppler

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

Rktk2中的gtkProgressBar

我正在尝试添加一个gtkProgressBar我为R脚本创建的小接口(使用该RGtk2包).

如果我做一些简单的事情,如:

for (i in 1:50)
    {
    gtkProgressBarSetFraction(progress, i/50)
    Sys.sleep(1)
    }
Run Code Online (Sandbox Code Playgroud)

一切顺利,酒吧每秒更新一次.

但是,当我转到我的实际代码时,我有一个循环,我做了类似的事情

for(i in 1:1000)
    {
    gtkProgressBarSetFraction(progress, i/1000)
    #do some heavy computation here
    }
Run Code Online (Sandbox Code Playgroud)

这里的问题是界面"冻结"并且进度条仅在循环结束时更新,因此完全击败其使用...

我在这里错过了什么吗?如何定期"唤醒"界面以使其刷新?

谢谢你尼科

编辑:好的,我解决了问题,但我仍然不明白发生了什么.我之后添加了一个Sys.sleep电话gtkProgressBarSetFraction,现在接口更新了.为了减少"浪费的时间",我刚才这样做了Sys.sleep(0.0001)(因此,对于1000个周期,我只有大约0.1-1秒的计算时间,这是可以接受的).任何人都可以解释为什么会这样?

gtk r progress-bar

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

使用 &gt;1000 个选项更新服务器端选择输入的选择失败

我有一个闪亮的应用程序,其中包含一个服务器端选择输入和一长串(> 10k)的选择。我想在单击按钮时更新选择。这是一个可重现的例子

library(shiny)

ui <- fluidPage(
  actionButton('buttonid','Button'),

  selectizeInput("listid", "A long list", choices = NULL)
  )

server <- function(input, output, session) 
  {
  updateSelectizeInput(session, "listid", choices = paste("Item", 1:10000), server = T)
  observeEvent(input$buttonid,
               {
               updateSelectizeInput(session, "listid", selected = "Item 1234")
               })
  }

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

当我按下按钮时,上面的代码会导致一个空白的选择。但是,如果我搜索“Item 1234”,然后更改选择并按下按钮,现在该项目被选中。

此外,尝试在 Item 1 和 1000 之间选择一个项目不会出现问题,大概是因为一开始就加载了 1000 个项目。

这似乎类似于这个旧错误,但我不确定是否有解决方法https://github.com/rstudio/shiny/issues/1018

r shiny selectize.js

3
推荐指数
2
解决办法
784
查看次数

如何减少R中的数组维度?

假设我有一个数据数组,

dat <- array(NA, c(115,45,10))

我怎样才能得到一个新的数据数组

dat1<- array(NA, c(115,45))通过dat第三维平均?

谢谢

r

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

R levelplot colorkey标签和颜色范围

我试图从格子包中制作一个水平图(也是显示轮廓线).我有几个问题(如下所述).

MyData:https: //www.dropbox.com/s/ht55g0qlkiou2x2/growth.matrix.stackoverflow.xlsx

require(lattice)      
require(latticeExtra) 
require(xlsx)   

#matrix to be plotted
growth.matrix<-as.matrix(read.xlsx("C:/Users/eckmannm/Dropbox/growth.matrix.stackoverflow.xlsx",sheetName="p4.pct",colIndex=2:8,startRow=3,endRow=15,header=FALSE))

#column values
TempRange<-as.numeric(c(0, 2, 4, 6, 8, 10, 12))
#row values
MeanTemp<-as.numeric(c(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18))
#x and y axis labels
x.range<-as.numeric(c(6, 8, 10, 12, 14, 16, 18))

#color ramp
col.l <- colorRampPalette(c('red', 'orange', 'yellow', 'green', 'cyan', 'blue'))

colorplot<-
   levelplot(
   growth.matrix, 
   row.values=(MeanTemp),
   column.values=(TempRange),
   col.regions=col.l,
   at=seq(from=0,to=1.01,length=100),   
   lattice.options=list(key=list(cex=4)),
   panel = panel.2dsmoother,
   scales=list((x=list(labels=MeanTemp)), y=list(labels=TempRange)), 
   colorkey=list(at=as.numeric(factor(c(seq(from=0, to=1, by=.20)))),
               labels=as.character(c( "0", "20%", "40%", "60%", …
Run Code Online (Sandbox Code Playgroud)

r lattice removing-whitespace levelplot

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

R-如何在行情图中添加线条和文字?

pheatmap()使用以下代码使用该函数创建热图:

library(pheatmap)
pheatmap((data_matrix[,1:11]), cluster_rows = F, cluster_cols = F, scale="none",
     show_rownames=F, treeheight_row = F, 
     color=colorRampPalette(rev(c("red","white")))(50),
     main="values", cex.main=1.2)
Run Code Online (Sandbox Code Playgroud)

我想在某些位置添加文字和线条以表示组和百分比。

abline()并且text()不工作,过度绘图我到目前为止还没有成功。

最好的方法是什么?

谢谢菲利普

r

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