这是一个代码片段,我正在尝试使用!:
demo <- <dataframe>[!which(<dataframe>$<col_name> == 0),]
Run Code Online (Sandbox Code Playgroud)
但它没有给我正确的输出。
当我使用-在:
demo <- <dataframe>[-which(<dataframe>$<col_name>== 0),]
Run Code Online (Sandbox Code Playgroud)
它给我带来了正确的答案。
有人可以解释为什么会这样吗?
小智 5
因此which将返回满足条件的行索引向量<dataframe>$<col_name> == 0,而不是逻辑(TRUE/FALSE)向量。因此,当你用 ! 来否定它时 你会胡言乱语。你本质上是在做这件事!c(0, 1, 2, 3, 4),它会返回TRUE FALSE FALSE FALSE FALSE.
该-符号将删除语句返回的行which,这就是您想要的。
或者你可以这样做:
demo <- <dataframe>[!<dataframe>$<col_name> == 0,]