在许多主流编程语言中,您可以使用布尔数据类型(例如,值可以是true或者false) - 来表示二进制"真/假".
SAS中也有布尔数据类型吗?
例如,在此代码中,变量is_fruit旨在表示二进制true(1)或false(0)情况.由于我不知道任何布尔数据类型(或length类型),我使用数字解决这个问题:
data is_fruit;
length fruit_name $ 40 is_fruit 8.;
input fruit_name $ is_fruit;
datalines;
apple 1
orange 1
car 0
tree 0
chicken 0
peach 1
mango 1
human 0
;
run;
Run Code Online (Sandbox Code Playgroud)
输出:
对我来说,这不是一个非常优雅的数据结构,因为变量is_fruit实际上是一个布尔数据类型(不是数字或字符).所以我的问题又来了......
上面是否有布尔数据类型(或length类型)is_fruit?
在我以前的工作场所,我可以访问基本SAS(直接在服务器上以交互方式运行SAS),我可以通过发出代码轻松找到当前的SAS版本(从SAS日志中) proc setinit; run;
在我的新工作场所,没有基础SAS - 仅限企业指南.我尝试运行相同的代码,但SAS版本没有出现在SAS日志中.
我想从Enterprise Guide中轻松找到服务器上运行的SAS版本.这可能吗?如果是这样,怎么样?
我知道命名一个与Python内置函数同名的变量是个坏主意.但是如果一个人不知道要避免的所有"禁忌"变量名称(例如list,set等等),是否有办法让Python至少阻止你(例如通过错误消息)破坏内置函数?
例如,下面的命令行4允许我覆盖/损坏内置函数,set()而不会阻止我/产生错误.(这个错误一直没有被注意到,直到它被set()调用到下面的命令行6.).理想情况下,我希望Python在命令行4停止我(而不是等到命令行6).
注意:以下执行是在Python 2.7(iPython)控制台中执行的.(Anaconda Spyder IDE).
In [1]: myset = set([1,2])
In [2]: print(myset)
set([1, 2])
In [3]: myset
Out[3]: {1, 2}
In [4]: set = set([3,4])
In [5]: print(set)
set([3, 4])
In [6]: set
Out[6]: {3, 4}
In [7]: myset2 = set([5,6])
Traceback (most recent call last):
File "<ipython-input-7-6f49577a7a45>", line 1, in <module>
myset2 = set([5,6])
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)
背景:我正在遵循HackerRank Python Set Challenge的教程.本教程涉及创建一个变量valled set(与Python内置函数同名).我逐行完成了教程,并得到了"set object …
最近在使用 TensorFlow Python 存储库时,我一直在使用 PyCharm IDE。TensorFlow遵循 PEP8 Python 风格指南,除了使用 2 个空格作为 indents。
默认情况下,在 PyCharm IDE 中,我启用了 PEP8 检查以使我的代码遵循 PEP8 样式约定。一个不受欢迎的副作用是现在我在 PyCharm 编辑器中到处都有警告,标记所有缩进(2 个空格而不是 4 个空格)。
如果我禁用 PEP8 检查,所有警告都会在不再进行 PEP8 检查(这是可取的)的权衡下消失。
有没有办法在 PyCharm 编辑器中启用完整的 PEP8 检查,但忽略 2 空格缩进?
这是 PEP8 警告的示例(关于缩进空格应该是 4 而不是 2):
这是 PyCharm 首选项页面的快照,位于 PEP8 检查部分下(看起来它是开/关 - 除非我遗漏了什么):
两个不错的选择(用于不同目的):
我试图解决的问题:
我有一个work.testData包含 8 列和大约 100 万行的 SAS 数据集(在工作库中)。所有列都是文本(即没有数字数据)。此 SAS 数据集的文件大小约为 100 MB。我的目标是将整个 SAS 数据集解析为 Oracle。即有点像从 SAS 平台到 Oracle 平台的 SAS 数据集的“复制和粘贴”。这背后的基本原理是,每天,Oracle 中的这个表都会被 SAS 中的表“替换”,这将启用下游 Oracle 流程。
我解决问题的方法:
Oracle 中的一次性初始设置:
testData,其表结构与 SAS dataset 几乎相同testData。(即相同的表名、相同的列数、相同的列名等)。不断重复的过程:
示例代码 …
在我的主要代码中说我有这个代码块:
%macros hi5;
%put hi five;
%mend;
%macros helloworld;
%put hello world;
%mend;
Run Code Online (Sandbox Code Playgroud)
在SAS Enterprise Guide中,我如何显示这样的内容?(通过日志或通过SAS表)
These are the user defined user macros:
hi5
hello world
Run Code Online (Sandbox Code Playgroud)
(目的是让用户能够知道他们已经可以使用哪些宏).
注意:%put _ALL_唯一列出所有宏变量,而不是宏(例如用%macros and %mend.构建.)
我很难搜索符号的含义,例如<>在rails查询中的含义.那<>意味着什么?(或者一般来说,你如何谷歌搜索类似的东西<>?)
用简单的英语,以下查询是什么意思?
查询1:
@profile.socials.all.where.not(kind: [2, 3])
Run Code Online (Sandbox Code Playgroud)
查询2:
@profile.socials.where("kind <> ?", "[:facebook, :linked_in]")
Run Code Online (Sandbox Code Playgroud)
注1:kind数据类型enum如下所示:
enum kind: [ :twitter, :google_plus, :facebook, :linked_in, :skype, :yahoo ]
Run Code Online (Sandbox Code Playgroud)
注意2:两个查询在控制台窗口中产生相同的结果.我相信这两个查询都旨在where对子集数据进行查询(使用not-equal-to运算符).我只是没有知道如何解释它的线索<>.
这些是我的模特:
型号Profile:
class Profile < ActiveRecord::Base
has_many :socials, as: :sociable, dependent: :destroy
accepts_nested_attributes_for :socials, allow_destroy: true
end
Run Code Online (Sandbox Code Playgroud)
型号Social:
class Social < ActiveRecord::Base
enum kind: [ :twitter, :google_plus, :facebook, :linked_in, :skype, :yahoo ]
belongs_to :sociable, polymorphic: true …Run Code Online (Sandbox Code Playgroud) sas ×4
python ×2
boolean ×1
cloud9-ide ×1
ide ×1
oracle ×1
pep8 ×1
pycharm ×1
python-2.7 ×1
sql ×1
tensorflow ×1