小编dig*_*All的帖子

如何对amxn矩阵进行排序,其中m行的所有排序和n列排序?

给定具有m行和n列的矩阵,每个列都被排序.如何有效地整理整个矩阵?

我知道一个在O(mn log(min(m,n))中运行的解决方案.我正在寻找更好的解决方案.

我知道的方法一次基本上需要2行/列并应用合并操作.

这是一个例子:

[[1,4,7,10],

 [2,5,8,11],

 [3,6,9,12]]
Run Code Online (Sandbox Code Playgroud)

是输入martix,它对每一行和每列进行排序.

预期产出是:

[1,2,3,4,5,6,7,8,9,10,11,12]
Run Code Online (Sandbox Code Playgroud)

另一个例子:

[[1, 2, 3, 3, 4, 5, 6, 6, 7, 7],

 [1, 2, 4, 6, 7, 7, 8, 8, 9,10],

 [3, 3, 4, 8, 8, 9,10,11,11,12],

 [3, 3, 5, 8, 8, 9,12,12,13,14]]
Run Code Online (Sandbox Code Playgroud)

algorithm data-structures

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

C#将int类型的对象转换为可以为空的枚举

我只需要能够将一个对象转换为可以为空的枚举.对象可以是enum,null或int.谢谢!

public enum MyEnum { A, B }
void Put(object value)
{
    System.Nullable<Myenum> val = (System.Nullable<MyEnum>)value;
}

Put(null);     // works
Put(Myenum.B); // works
Put(1);        // Invalid cast exception!!
Run Code Online (Sandbox Code Playgroud)

c# enums nullable

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

R - 在创建大量data.table对象时性能下降

我当然知道data.table对象的主要目的是允许快速子集化/分组等,并且拥有一个大的data.table子集(非常有效)比拥有许多(可能很小的)data.table对象更有意义.

话虽这么说,我最近创建了一个实例化大量data.table对象的脚本,我注意到随着内存数量的增加,性能会下降data.table's.

这是我的意思的一个例子:

n <- 10000
# create a list containing 10k data.frame's
system.time(lotsofDFs <- lapply(1:n,FUN=function(i){ data.frame(A=1:10,B=1:10,ID=i)}),gcFirst=T)
#   user  system elapsed 
#   2.24    0.00    2.23 
# create a list containing 10k data.table's
system.time(lotsofDTs <- lapply(1:n,FUN=function(i){ data.table(A=1:10,B=1:10,ID=i)}),gcFirst=T)
#   user  system elapsed 
#   5.49    0.01    5.53 
n <- 80000
# create a list containing 80k data.frame's
system.time(lotsofDFs <- lapply(1:n,FUN=function(i){ data.frame(A=1:10,B=1:10,ID=i)}),gcFirst=T)
#   user   system elapsed
#   19.42    0.01   19.53
# create a list …
Run Code Online (Sandbox Code Playgroud)

performance r data.table

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

如果通过RScript调用tryCatch不会捕获错误

我在R面临一个奇怪的问题.

请考虑以下代码(实际代码的真正简化版本,但仍然存在问题):

library(timeSeries)

tryCatch(
{
  specificWeekDay <- 2

  currTs <- timeSeries(c(1,2),c('2012-01-01','2012-01-02'),
                       format='%Y-%m-%d',units='A')
  # just 2 dates out of range
  start <- time(currTs)[2]+100*24*3600
  end <- time(currTs)[2]+110*24*3600

  # this line returns an empty timeSeries
  currTs <- window(currTs,start=start,end=end)

  message("Up to now, everything is OK")

  # this is the line with the uncatchable error
  currTs[!(as.POSIXlt(time(currTs))$wday %in% specificWeekDay),] <- NA

  message("I'm after the bugged line !")

},error=function(e){message(e)})

message("End")
Run Code Online (Sandbox Code Playgroud)

当我在RGui中运行该代码时,我正确地得到以下输出:

到目前为止,
在为函数'[< - '选择方法时评估参数'i'时一切正常错误:as.POSIXlt.numeric(time(currTs))中的错误:必须提供'origin'
结束

相反,当我使用以下行通过RScript(在Windows中)运行它时:

RScript.exe --vanilla "myscript.R"
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

到目前为止,一切正常
执行中断

似乎RScript崩溃了......

有什么想法吗?
这是一个timeSeries包错误,还是我做错了什么?
如果是后者,那么确保捕获所有错误的正确方法是什么? …

r try-catch

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

如何在c#项目中找到所有静态变量?

我希望与多个线程并行运行命令行程序的某些部分,我担心可能会有一些静态变量,我必须修复(例如通过制作它[ThreadStatic]).在我的项目中是否有任何工具或简单的方法可以找到这些?

当然,简单地搜索"static"并没有多大帮助:我有很多静态方法可以很好地工作并且可以使用任意数量的线程

c# static code-analysis static-analysis

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

将连续NA减少到单个NA的最佳方法

我需要将矢量中的连续NA减少到单个NA,而不触及其他值.
所以,例如,给定一个这样的向量:

NA NA  8  7 NA NA NA NA NA  3  3 NA -1  4
Run Code Online (Sandbox Code Playgroud)

我需要得到的是以下结果:

NA  8  7 NA  3  3 NA -1  4
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用以下功能:

reduceConsecutiveNA2One <- function(vect){
  enc <- rle(is.na(vect))

  # helper func
  tmpFun <- function(i){
    if(enc$values[i]){
      data.frame(L=c(enc$lengths[i]-1, 1), V=c(TRUE,FALSE))
    }else{
      data.frame(L=enc$lengths[i], V=enc$values[i])
    }
  }

  Df <- do.call(rbind.data.frame,lapply(1:length(enc$lengths),FUN=tmpFun))

  return(vect[rep.int(!Df$V,Df$L)])
}
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,但可能有一个更简单/更快的方法来完成这项任务.

有什么建议 ?

提前致谢.

r

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

如何将DataTable中的值转换为c#中的字符串数组

我有一个包含单行的DataTable.我想将此DataTable值转换为字符串数组,以便我可以通过字符串数组索引访问该DataTable的列值.例如,如果我的DataTable如下所示

|  Name  |  Address  |   Age  |
-------------------------------
|  jim   |    USA    |   23   |
Run Code Online (Sandbox Code Playgroud)

我想将Datatable中的值存储到我的字符串数组中,以便MyStringArray [1]给我一个值USA.

提前致谢

.net c# linq

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

通过增加索引总和来生成排序的有效方法

对于启发式算法,我需要一个接一个地评估某个集合的组合,直到达到停止标准.

由于它们很多,目前我使用以下内存高效迭代器块(灵感来自python itertools.combinations)生成它们:

public static IEnumerable<T[]> GetCombinations<T>(this IList<T> pool, int r)
{
    int n = pool.Count;
    if (r > n)
        throw new ArgumentException("r cannot be greater than pool size");
    int[] indices = Enumerable.Range(0, r).ToArray();
    yield return indices.Select(idx => pool[idx]).ToArray();
    while (true)
    {
        int i;
        for (i = r - 1; i >= 0; i--)
            if (indices[i] != i + n - r)
                break;
        if (i < 0)
            break;
        indices[i] += 1;
        for (int j = i + 1; j …
Run Code Online (Sandbox Code Playgroud)

c# performance combinations

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

从简单的R程序到具有良好GUI的可执行文件?

我有一个朋友要我为他实施一些东西.让我们举一个简单的例子:我输入了四个值:Value1到Value4.使用这些值,我的R程序可以进行花哨的计算,并给出了很好的结果.

不,让我说我不想打扰我的朋友(从他的角度来看)复杂的r脚本并在那里输入值.所以我想编写一个简单的输入gui,然后将其作为可执行文件.现在我有两个问题:

我怎样才能创建这样的输入gui?

如何从中获取可执行文件?

user-interface executable r

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

C# - 对象范围

我看过这个这个,我有以下问题,看看我是否理解正确.鉴于代码

using System;

namespace returnObject
{
    class myObject
    {
        public int number { get; set; }

    }

    class Program
    {
        static void Main(string[] args)
        {

            myObject mainObj = make();
            mainObj.number = 7;
        }

        public static myObject make()
        {
            myObject localObj = new myObject();
            localObj.number = 4;
            return localObj;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我希望localObj在make方法结束时超出范围,因此,obj.number在main函数中设置为7会失败.它没有.我认为我说的是正确的:

  • localObj 是对象的引用
  • localObj 在堆栈上创建
  • localObj 在make方法结束时超出范围.
  • localObj引用的对象在堆上.

所以,我正确地认为通常所localObj引用的对象在make方法结束时被垃圾收集器标记为删除但是由于引用值已被传递回mainObj,因此该对象被引用,因此不符合条件删除?

另外是以这种方式创建对象的好习惯吗?

c#

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