Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为什么不使用'which'命令_R - Fatal编程技术网

R 为什么不使用'which'命令

R 为什么不使用'which'命令,r,R,在下面的讨论中,有评论: 不要用那个 几票赞成 为什么在R中使用哪个是不好的,有哪些替代方法/更可取的方法?当然,不应将其视为一般性建议。在那种情况下,它只是多余的。我假设问题在于捕获某个函数的输出(或者在if语句中使用)。如果是这样的话 a <- which(1:3 == 5) length(a) != 0 a你为什么不在评论中问这个问题呢?我希望有更多的答案我不知道为什么不which(),但是-which(),特别是在数据框架上。有时候会产生一些意想不到的结果。我怀疑评论的投票率很高

在下面的讨论中,有评论:

不要用那个

几票赞成


为什么在R中使用
哪个
是不好的,有哪些替代方法/更可取的方法?

当然,不应将其视为一般性建议。在那种情况下,它只是多余的。我假设问题在于捕获某个函数的输出(或者在if语句中使用)。如果是这样的话

a <- which(1:3 == 5)
length(a) != 0

a你为什么不在评论中问这个问题呢?我希望有更多的答案我不知道为什么不
which()
,但是
-which()
,特别是在
数据框架上。有时候
会产生一些意想不到的结果。我怀疑评论的投票率很高,因为,许多人似乎把他的话当作福音(这是对他们的批评,而不是对哈德利的批评)。使用
,这只是生成
整数(0)
的语句的一个示例。无论OP给出了什么样的例子,有人可能会说,“不要使用那个语句”,这对于回答如何捕捉零长度向量结果的实际问题是完全没有帮助的。我认为这是一个一般性的建议,也许可以用一些更有效的替代方法来代替
(比如
apply
,而不是
for
)。Thanks@Zbynek就性能而言,
apply
并不比
for
更有效,仅就代码的清晰性而言。我的经验是,当计算矩阵行的和时,
apply
要快得多-我刚刚尝试过,只花了大约20%的时间loop@Zbynek如果你认为一个显著的性能差异…在这种情况下,使用
rowSums
可以将速度提高几个数量级。
b <- 1:3 == 5
any(b)