我有一个VBA功能基本上沿着这些方向:
Public Function JoinDateTime(DateTime As String, Time As String) As Date
Dim dtDate As Date
dtDate = CDate(Format(DateTime, "dd/mm/yyyy"))
dtDate = dtDate & " " & Format(Time, "hh:mm")
JoinDateTime = dtDate
End Function
Run Code Online (Sandbox Code Playgroud)
它将日期和时间粘合在一起,形成日期时间值.(真正的功能背后有更多的逻辑.)
问题是,我想为传递给它的恼人值添加处理.这主要用于空/空值 - 如果DateTime为空,则返回空.如果它是一个返回#Error的文本字符串,那么它不会只是默默地失败似乎是一个好主意.
问题是,我不知道该怎么做.我想过做一个早期的回归,也许就像在函数的开头推迟这个:
If DateTime = Null or DateTime = "" Then
JoinDateTime = Null
End If
Run Code Online (Sandbox Code Playgroud)
但它似乎并不认为这是一个返回,仍然执行函数的其余部分.
有没有办法做到这一点?一个更好的方法,理想情况下?
我正在尝试做类似于这个问题的事情,但希望在单个块中完成而不是单独缓存值。
我正在创建一个类似于此的图表:
library(tidyverse)
mtcars %>%
rownames_to_column("carmodel") %>%
mutate(brand = substr(carmodel, 1, 4)) %>%
group_by(brand, cyl) %>%
summarize(avgmpg = mean(mpg)) %>%
ggplot(aes(x=brand, y = avgmpg)) +
geom_point() +
facet_grid(cyl~., scales = "free_y") +
coord_flip()
Run Code Online (Sandbox Code Playgroud)
按字段之一分组,然后根据summarize()
结果绘制计算值,使用方面将类似的观察结果放在一起。我想做的是在每个方面添加一条线,显示该方面的观察平均值。我尝试添加geom_hline(aes(yintercept = mean(avgmpg)))
到定义中,但它返回整个数据集的平均值,而不是方面中的观察值:
我所追求的更像是这样。(这里的线条是用图像编辑器绘制的。)
这可能吗?
我有一个脚本需要临时提取数据以对其执行额外的操作,但是在脚本运行后不需要再存储它.我目前在一系列临时本地表(CREATE TABLE #table)中有相关数据,然后在使用完成时将其删除.我正在考虑切换到物理表,以相同的方式处理(CREATE TABLE表),如果脚本的速度有所提高(或者其他优点,可能?).
...那么,临时表和物理表之间的性能是否存在差异?从我正在阅读的内容来看,临时表只是物理表,只有运行脚本的会话才能查看(减少锁定问题).
编辑:我应该指出,我在谈论物理表与临时表.有很多关于临时表和表变量的信息,例如http://sqlnerd.blogspot.com/2005/09/temp-tables-vs-table-variables.html.
首先,完全披露:这是一个 uni 分配,所以我不想收到代码。:)。我更在寻找方法;我对 python很陌生,读过一本书但还没有写任何代码。
整个任务是导入 CSV 文件的内容,根据 CSV 文件的内容创建决策树(使用ID3 算法),然后解析第二个 CSV 文件以针对该树运行。有一个很大的(可以理解的)偏好让它能够处理不同的 CSV 文件(我问我们是否被允许对列名进行硬编码,主要是为了消除它的可能性,答案是否定的)。
CSV 文件采用相当标准的格式;标题行用# 标记,然后显示列名,之后的每一行都是一系列简单的值。例子:
# Column1, Column2, Column3, Column4
Value01, Value02, Value03, Value04
Value11, Value12, Value13, Value14
Run Code Online (Sandbox Code Playgroud)
目前,我正在尝试解决第一部分:解析 CSV。要为决策树做出决策,字典结构似乎是最合乎逻辑的;所以我想沿着这些方向做一些事情:
Read in each line, character by character
If the character is not a comma or a space
Append character to temporary string
If the character is a comma
Append the temporary string to a list
Empty string
Once a line has been read
Create …
Run Code Online (Sandbox Code Playgroud) 我有一个工作簿,其中包含由宏更新的数据透视表。不过,在刷新数据之前,连接字符串会发生更改:
With ThisWorkbook.Connections("Data").ODBCConnection
.Connection = [Redacted]
.CommandText = "EXEC ExtractCases " & Client
.BackgroundQuery = False
.Refresh
End With
Run Code Online (Sandbox Code Playgroud)
这似乎导致数据透视表创建一个新连接(称为 要么Connection
,Data1
我似乎无法弄清楚它在它们之间进行选择的作用)并将其自身指向该连接。所以我必须添加这样的行:
Sheets("Pivot").PivotTables("Pivot").ChangeConnection ThisWorkbook.Connections("Data")
Sheets("Pivot").PivotTables("Pivot").PivotCache.Refresh
Run Code Online (Sandbox Code Playgroud)
这似乎有效(除非它不起作用),但在工作簿中留下了很多死连接,导致混乱。
我尝试过手动删除Connection
连接,但随后它突然Data1
无缘无故地自行命名,并且系统感到不安,因为无法Connection
删除不存在的连接。
有什么明显的我做错了吗?有没有什么神奇的方法可以解决这个问题,这样它就不会从一开始就产生第二个问题,从而导致这些令人头痛的问题?
注意:我在 Excel 2010 中运行此代码,但工作簿必须在 2003 年之前可打开;然而,我在分发之前删除了 VB 模块,所以 2010 宏的东西很好,只是工作簿中的东西可能会被这个绊倒......
这是我第一次尝试创建一个包,所以我必须错过一些非常明显的东西(我用Google搜索的内容似乎甚至不值得一提).
显然,如果您的包体中有未包含在规范部分中的过程,那么这些过程是私有的.我遇到的问题是,一旦我制作了私有包,我似乎无法弄清楚如何引用这些私有包.并且SQL Developer拒绝向我提供任何比'完成警告'更有用的消息,这没有帮助......
作为一个例子,这是我一直在尝试的不起作用(只是抛出上述编译器错误):
CREATE OR REPLACE PACKAGE BODY testPackage AS
PROCEDURE privateProc; --Forward declaration
PROCEDURE publicProc IS
BEGIN
EXECUTE privateProc();
END;
PROCEDURE privateProc IS
BEGIN
DBMS_OUTPUT.PUT_LINE('test');
END;
END testPackage;
Run Code Online (Sandbox Code Playgroud)
我也试过把它称为testPackage.privateProc
,但也没有用.
我究竟做错了什么?
我正在尝试按以下方式编写查询:
UPDATE Table i2
SET value = 0
WHERE EXISTS (SELECT 1 FROM Table i1 WHERE i2.ID = i1.ID+1)
Run Code Online (Sandbox Code Playgroud)
问题是我得到"i2'附近的语法错误." 我猜这是因为它不喜欢给正在更新的表提供昵称,但如果是这样的话,我该如何引用呢?
我正在Access 2003中的表之间迁移数据.在旧表中,日期以YYYYMMDD格式存储为文本字段.
我想将该字段存储为新表中的日期时间.我已尝试CDate()
在我的SQL语句中使用,但它只显示#Error
在结果中.
我究竟做错了什么?
我正在创建一份报告,比较不同单位的总时间和数量.这里简化了我目前正在使用的查询:
SELECT m.Unit,
COUNT(*) AS Count,
SUM(m.TimeInMinutes) AS TotalTime
FROM main_table m
WHERE m.unit <> ''
AND m.TimeInMinutes > 0
GROUP BY m.Unit
HAVING COUNT(*) > 15
Run Code Online (Sandbox Code Playgroud)
但是,有人告诉我,我需要排除行的时间最高或最低5%的情况,以试图摆脱一些古怪的异常值.(如在应用聚合之前删除行.)
我怎么做?
我正在尝试将shapefile应用于ggmaps地图,但它给了我非常奇怪的结果.有问题的shape文件是"统计局域网"(组类似邮编)shape文件从可用统计澳大利亚统计局这里.
通常情况下,我可能认为这是一个切断边缘点的问题,但即使在缩放级别1我也会遇到它(事实上它看起来更糟):
以下是我用于生成上述图表的一些代码:
library(tidyverse)
library(ggmap)
library(rgdal)
slas <- readOGR(dsn="SLA",layer="SLA11aAust")
aus4 <- get_map("Australia",zoom=4)
ggmap(aus4)
ggmap(aus4)+
geom_polygon(data=slas, aes(x=long,y=lat))
aus1 <- get_map("Australia",zoom=1)
ggmap(aus1)
ggmap(aus1)+
geom_polygon(data=slas, aes(x=long,y=lat))
Run Code Online (Sandbox Code Playgroud)
我做错了什么,或者shapefile是否以某种方式错误配置?