下面是我从R转换为Python的脚本中的一行 . 我在Python方面比在R方面更有经验,我在这里遇到了一些麻烦:
val = sum(l & f==v)
设 l
是真/假值的向量 . 设 f
是一个平凡值的向量,并且 v
可以测试 f
的一些可能值 . 我希望 l
和 f
具有相同的长度 . f==v
部分也将产生一个布尔数组 . 现在我留下的问题是 &
/&符号(逻辑AND,根据R documentation)在这种情况下会做什么 . sum()
函数是否会返回一个布尔数组的总和,该数组指示 l
和 f==v
布尔数组的真实位置?或者它将两个数组的所有真值相加并加起来?
先感谢您!
2 回答
让我们定义几个向量:
现在让我们看看我们分解你的行时的情况
sum(l & f==v)
:在此行中,
==
优先于&
:然后我们做
l & fev
:最后,我们总结:
总和通过将
logical
值转换为数字来告诉我们在l
和f==v
中同时存在多少TRUE
:TRUE
变为1
且FALSE
变为0
. 所以,在这个例子中,1 .这是一个示例python版本: