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)