小编gtw*_*ebb的帖子

Excel VBA日期格式

我有一个包含许多日期的电子表格.这些通常出现在mm/dd/yyyymm/dd/yyyy hh:mm.

问题是日期并不总是正确放入,我想检查以确保它们是代码中的日期.

我原来的想法是用来IsDate检查或CDate但这似乎不起作用:它仍然返回字符串而不是日期.

我已经建立了一个小实验,表明这些功能不像我期望的那样工作.方法是:

  1. 在单元格A1中输入公式 =DATE(2013,10,28)
  2. 单元格B1公式=A1*1应该等于一个数字(41575)
  3. 运行这个小脚本

    Sub test()
    
    MsgBox ("Start:" & TypeName(ActiveCell.Value) & " " & IsDate(ActiveCell.Value))
    
    ActiveCell.Value = Format(ActiveCell.Value, "mm/dd/yyyy")
    MsgBox ("After format: " & TypeName(ActiveCell.Value) & " " & IsDate(ActiveCell.Value))
    
    ActiveCell.Value = CDate(ActiveCell.Value)
    MsgBox ("After Cdate: " & TypeName(ActiveCell.Value) & " " & IsDate(ActiveCell.Value))
    
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)

当脚本启动时,单元格的类型为date,并IsDate返回true.在它运行之后,它是Formatstring类型但IsDate仍然返回true. CDate还会将单元格转换为字符串.单元格B1现在也将返回0(因为它是一个字符串*1).

所以我想总结一下问题:

  1. 为什么FormatCDate改变我的细胞为字符串?
  2. 如何确保单元格将返回日期值而不仅仅是一个看起来像日期的字符串?

excel vba date excel-vba

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

足迹发现算法

我正在尝试提出一种算法来优化多边形(或多个多边形)的形状,以最大化该形状中包含的值.

我有3列数据:

  • X:x轴上的位置
  • Y:y轴上的位置
  • 值:可以具有正值和负值的块的值.

此数据来自常规网格,因此每个x和y值之间的间距是一致的.

我想创建一个边界多边形,通过添加的条件最大化包含的值.

  • 需要在多边形的所有点处保持最小半径.这意味着我们将丢失一些正值块或获得一些负值块.

我正在使用的当前算法执行以下操作

  1. 查找最大块值作为起点(或用户定义)
  2. 找到最小半径内的所有块,并通过检查总值是否为正来确定它是否可行
  3. 从进一步的值计算中移除最小搜索半径中的所有块,并将它们标记为最终形状的一部分
  4. 移动到由原点周围的螺旋线确定的下一个点.(中心始终是网格点,因此按deltaX或deltaY移动)

这似乎是在拾取一些不需要的细胞.我确定那里有形状算法,但我不知道该怎么查找才能找到帮助.

下面是一张希望有助于概述问题的图片.阳性细胞以红色显示(阴性细胞未显示).黑色轮廓显示我当前正在返回的形状.我相信左侧应该更多.最小半径为100米左下方的黑色圆圈大约是这个.

在此输入图像描述

现在代码在R中运行,但如果我能使算法正确,我可能会转向别的东西.

为了回应不明确的投票,我试图在没有背景或尝试解决方案的情况下解决的问题是:

"围绕一系列点创建一个边界多边形(或多边形),以最大化所包含的值,同时沿多边形保持最小曲率半径"

编辑:

数据

我应该包含一些可以在这里找到的数据.

该文件是一个csv.4列(X,Y,Z [未使用],Value),长度为~25k,大小为800kb.

algorithm 2d polygon image-processing

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

带有两个数据帧的ggplot条形图

我想要做的是使用来自两个不同数据帧的gglot创建一个"躲闪"的条形图

不幸的geom_bar是没有看到之前添加的数据所以它将它绘制在顶部,我尝试过使用位置和宽度,但它似乎没有改变任何东西,可能是因为它是每个类别一个条.

下面的代码创建的数据不正确地绘制数据(条形图彼此重叠),然后使用将数据框绑定在一起的解决方法正确绘制它.

library("ggplot2")

x<-data.frame(dat=rep(seq(1,4),3),let=rep("X"))
y<-data.frame(dat=rep(seq(1,4),4),let=rep("y"))

xy<-rbind(x,y)

#what I would like to use with two different data frames
ggplot(NULL,aes(dat))+
  geom_bar(data=y,fill="red",width=0.1,position = "dodge")+
  geom_bar(data=x,fill="blue",width=0.1,position = "dodge")

#what I would like to see only without binding dfs
ggplot(xy,aes(dat,fill=let))+geom_bar(position="dodge")
Run Code Online (Sandbox Code Playgroud)

我正在使用ggplot与其他仅使用单个数据帧的图表保持一致.

r ggplot2

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

拟合R中的加权分布

我希望将加权分布拟合到我拥有的数据集中.

我目前正在使用fitdist命令,但不知道是否有办法添加加权.

library(fitdistrplus)
df<-data.frame(value=rlnorm(100,1,0.5),weight=runif(100,0,2))

#This is what I'm doing but not really what I want
fit_df<-fitdist(df$value,"lnorm")

#How to do this
fit_df_weighted<-fitdist(df$value,"lnorm",weight=df$weight)
Run Code Online (Sandbox Code Playgroud)

我确信这个问题已经在某个地方得到了回答,但我看上去却找不到任何东西.

提前致谢,

戈登

r

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

如何在一个未知的模块中管理多个模块中的功能

我正在尝试编辑Lava中的脚本(Perl语言已经扩展用于挖掘软件Vulcan).

我遇到了模块的问题,因为我不习惯Perl,我无法完全解决它.

下面是一段代码

导致问题的模块是"宏".

use Lava;
use warnings;
use strict;
use vulcan;
use utf8;
use Macro 'RunMenu';
use File::Basename;

my $tri = 'C:\\_PROJECTS\\1404134_abc\\VULCAN\\faults.tri\\retriangulated\\gbc_ne1e_1606.00t';
my $tr = new Triangulation($tri);

#Runs fine
RunMenu("TRI_UTE_LOAD:$tri","abort",
      "FINISH") || die "Macro mismatch.\n";

#Does not run fine
RunMenu("TRI_EDIT_INTERP","abort",
      sub { Triangulation("$basedir\\$tri"); },

      sub { PanelResults("Select interpolation option",
                "line" => "",
                "Maximum triangle area  " => "$maxTriArea",
                "Maximum boundary length" => "100.0",
                "button_pressed" => "ok",
                "Interpolate midpoints" => "1",
                "Interpolate centroids" => "0",
                "Honour breaklines" => "1"
                   ); …
Run Code Online (Sandbox Code Playgroud)

perl

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

标签 统计

r ×2

2d ×1

algorithm ×1

date ×1

excel ×1

excel-vba ×1

ggplot2 ×1

image-processing ×1

perl ×1

polygon ×1

vba ×1