下面是一个我将自己回答的问题,但它给我带来了极大的挫败感,我在网上搜索它时遇到了很多麻烦,所以我在这里发帖是希望为别人节省一些时间和精力,如果我将来忘记这一点,也许对我自己:
对于VBA(在我的情况下,MS Excel),Public声明应该使变量(或函数)可以被该模块中的其他函数或子例程全局访问,以及任何其他模块.
原来这不是真的,在Forms我的情况下,我也怀疑Sheets,但我还没有验证后者.
简而言之,以下内容在a中创建时不会创建公共的可访问变量Form,因此会崩溃,并说明在mModule1中未定义bYesNo和dRate变量:
(inside fMyForm)
Public bYesNo As Boolean`
Public dRate As Double
Private Sub SetVals()
bYesNo = Me.cbShouldIHaveADrink.value
dRate = CDec(Me.tbHowManyPerHour.value)
End Sub
(Presume the textbox & checkbox are defined in the form)
(inside mModule1)
Private Sub PrintVals()
Debug.Print CStr(bYesNo)
Debug.Print CStr(dRate)
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,如果您进行下面的轻微更改,则一切正常:
(inside fMyForm)
Private Sub SetVals()
bYesNo = Me.cbShouldIHaveADrink.value
dRate = CDec(Me.tbHowManyPerHour.value)
End Sub
(Presume the textbox & checkbox are …Run Code Online (Sandbox Code Playgroud) 我想避免在默认环境中"意外"工作.
我希望总是有一个等效的文件requirements.txt或package.json文件,既可以清楚地将一个项目与另一个项目分开,也可以让我轻松回顾一下安装的内容(以及它的版本).
但我主要在数据科学/分析领域工作,主要是使用Python.
因此,我使用Anaconda,pip和Homebrew(我有一台Mac).依靠一个包管理器会很棒,而且许多人都支持一种或另一种方法来实现这一目标.事实是,截至目前(2018年9月),不可能在任何广泛的主题中工作,并至少避免一些混合.
让我的目标更低,更现实,我只想确保尽可能没有默认环境,使其更清洁,更容易与他人合作.
据我所知,Homebrew中根本没有环境概念.Conda当然有环境,但它首先设置一个默认环境,然后才能创建其他环境.
有没有办法在没有任何默认环境的情况下安装Anaconda ,这样我将永远不得不这样做source activate <my_env>?如果是这样,我该怎么做?
除此之外,有什么最好的建议可以实现我想要的,哪些是在我不清楚我的依赖关系是什么的环境中从不会意外地工作,认识到我主要谈论但不仅仅是关于使用Python?
(请不要建议我在安装包装时"要小心".是的,我理解.但是我试图先做出选择,尽可能做出错误或不可能的错误选择.如果我有的话例如,没有默认环境,pip直到我采购环境才会工作,因为在我的正常环境中找不到它.)
我是 Kotlin 的新手。我正在遵循一个教程,其中 GUI 部分涉及此代码片段:
sampleList.addMouseListener(object: MouseAdapter() {
override fun mouseClicked(mouseEvent: MouseEvent?) {
if (mouseEvent?.clickCount == 2) {
launchSelectedSample()
}
}
})
Run Code Online (Sandbox Code Playgroud)
mouseEvent是很明显的东西可空。在以前的编码经验中,我习惯于将一行更改mouseEvent?.clickCount == 2为mouseEvent?.clickCount > 1(或可能为>=2),以确保不会出现点击发生如此之快以至于从 1 跳到 3 或类似情况的极端情况。
所以,我将此代码切换为:
sampleList.addMouseListener(object: MouseAdapter() {
override fun mouseClicked(mouseEvent: MouseEvent?) {
if (mouseEvent?.clickCount >= 2) {
launchSelectedSample()
}
}
})
Run Code Online (Sandbox Code Playgroud)
进行切换(更改==2为>=2)后,我从 IntelliJ 收到以下错误:
Operator call corresponds to a dot-qualified call 'mouseEvent?.clickCount.compareTo(2)' which …Run Code Online (Sandbox Code Playgroud) 我想用一个布尔值索引,检查我的数据帧的行,其中特定的列并没有有NaN值.所以,我做了以下事情:
import pandas as pd
my_df.loc[pd.isnull(my_df['col_of_interest']) == False].head()
Run Code Online (Sandbox Code Playgroud)
查看该数据框的片段,仅包括不是NaN(大多数值NaN)的值.
它起作用,但似乎不那么优雅.我想输入:
my_df.loc[!pd.isnull(my_df['col_of_interest'])].head()
Run Code Online (Sandbox Code Playgroud)
但是,这会产生错误.我也花了很多时间在R,所以也许我很困惑.在Python中,我通常会在语法中加入"not".例如,if x is not none:但我真的不能在这里做.有更优雅的方式吗?我不喜欢不得不进行毫无意义的比较.
我无法将文件加载到RAM中(假设用户可能需要具有100亿条记录的第一个十亿个文件)
这是我的解决方案,但我认为必须有一个更快的方法?
谢谢
# specified by the user
infile <- "/some/big/file.txt"
outfile <- "/some/smaller/file.txt"
num_lines <- 1000
# my attempt
incon <- file( infile , "r")
outcon <- file( outfile , "w")
for ( i in seq( num_lines ) ){
line <- readLines( incon , 1 )
writeLines( line , outcon )
}
close( incon )
close( outcon )
Run Code Online (Sandbox Code Playgroud) 请参阅下面的解决方案,以防此问题在将来帮助其他人.
正如标题所描述的那样,它失败了.我收到的错误,当我install.packages('rJava')从R内部尝试时(有一些先前的好检查):
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
ERROR: configuration failed for package ‘rJava’
* removing ‘/usr/local/lib/R/3.2/site-library/rJava’
Run Code Online (Sandbox Code Playgroud)
我检查并尝试了以下决议,其中没有一个对我有用:
export JAVA_HOME但是在这种情况下,我没有做LD_LIBRARY_PATH,因为它似乎与Mac无关.
没有这样的运气,任何这些尝试.
我曾经以前有rJava(和RJDBC)正确安装.
[编辑:我后来发现,实际问题是升级到OS X …
我正在尝试学习在 Android 中做事的“Kotlin 原生方式”,同时既不是 Kotlin、Java 也不是 Android 开发的专家。具体来说,何时使用ArrayListvsMutableList。
在我看来,MutableList应该尽可能选择。然而,如果我查看 Android 示例,他们似乎总是选择ArrayList(就我目前发现的而言)。
下面是一个工作示例的片段,它使用ArrayList并扩展了 Java 的RecyclerView.Adapter.
class PersonListAdapter(private val list: ArrayList<Person>,
private val context: Context) : RecyclerView.Adapter<PersonListAdapter.ViewHolder>() {
Run Code Online (Sandbox Code Playgroud)
即使我是从 Android 的 Java 代码中借用的,我是否可以简单地将上述代码编写如下(注意MutableList<>而不是ArrayList<>)?
class PersonListAdapter(private val list: MutableList<Person>,
private val context: Context) : RecyclerView.Adapter<PersonListAdapter.ViewHolder>() {
Run Code Online (Sandbox Code Playgroud)
总是使用MutableListover真的更好ArrayList吗?主要原因是什么?我上面提供的一些链接让我无法理解,但在我看来,这MutableList是一个更松散的实现,在未来更有能力改变和改进。那正确吗?
我查看了我期望能够满足我的需求的标准文档(Apache Arrow和Pandas),但我似乎无法弄清楚。
我最了解Python,所以我想使用Python,但这不是严格要求。
我需要将 Parquet 文件从一个位置(URL)移动到另一个位置(Azure 存储帐户,在本例中使用 Azure 机器学习平台,但这与我的问题无关)。
这些文件太大而无法简单地执行pd.read_parquet("https://my-file-location.parquet"),因为这会将整个文件读取到一个对象中。
我认为必须有一种简单的方法来创建文件对象并逐行流式传输该对象 - 或者可能逐列块。就像是
import pyarrow.parquet as pq
with pq.open("https://my-file-location.parquet") as read_file_handle:
with pq.open("https://my-azure-storage-account/my-file.parquet", "write") as write_filehandle:
for next_line in read_file_handle{
write_file_handle.append(next_line)
Run Code Online (Sandbox Code Playgroud)
我知道它会有点不同,因为 Parquet 主要是为了以柱状方式访问。也许我会传递某种配置对象,它指定感兴趣的列,或者可以在一个块或类似的东西中抓取多少行。
但主要的期望是有一种方法可以访问 parquet 文件,而无需将其全部加载到内存中。我怎样才能做到这一点?
FWIW,我确实尝试过只使用 Python 的标准open函数,但我不确定如何使用openURL 位置和字节流。如果可以通过跳过open任何 Parquet 特定的内容来完成此操作,那也很好。
一些评论建议使用类似 bash 的脚本,例如这里。如果没有别的办法我可以使用这个,但它并不理想,因为:
在OS X Yosemite 10.10.3上安装pymssql时收到以下错误 - 有没有人得到以下错误?我使用FreeTDS(v0.91.112)版本7.1和Python 2.7.6 - tsql实用程序连接到SQL数据库没有问题.
sudo pip install pymssql
错误:
Command "/usr/bin/python -c "import setuptools, tokenize;
__file__='/private/tmp/pip-build-T5Usla/pymssql/setup.py';
exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n',
'\n'), __file__, 'exec'))" install --record /tmp/pip-uZGqK4-record/install-
record.txt --single-version-externally-managed --compile" failed with error
code 1 in /private/tmp/pip-build-T5Usla/pymssql
Run Code Online (Sandbox Code Playgroud) 我喜欢 Visual Studio Code,但它的 Intellisense 自动完成功能让我发疯,我用它犯的错别字比它帮助的要多。所以我觉得我一定是用错了。
这个问题很难解释,所以我在下面有一个截图:
我输入了thi. 我希望/期望/希望自动完成功能只会查找thi按连续顺序包含的任何要自动完成的内容。但事实并非如此。相反,它会寻找任何以字母t,h以及i在其中。它们不需要彼此相邻,感兴趣的东西甚至不需要从t.
我想“驯服”自动完成以只找到连续的字母。有没有办法做到这一点?(我在大部分工作中使用 Python、Javascript 和 SQL,但我希望配置是跨语言的。)
理想情况下,我想自动完成的(a)要求所有的字母是连续的;(二)不要求感兴趣的东西,开始以这些字母,以及(c)忽略大/小写。但到目前为止,对我来说最重要的问题是解决 (a)。