尝试对tibble进行子集的问题

时间:2017-05-09 16:44:21

标签: r subset tibble

这个应该是一个简单的,但我无法弄清楚我做错了什么。可能是一些愚蠢的......叹息......

所以它就这样,我有一个大的tibble,我试图删除一些观察。我有一个索引逻辑向量,我想用它来获取我想要删除的观察结果:

 df[index,]

让我对我不想要的观察结果进行了抨击。但是,我还需要访问我正在运行的其余观察

df[-index,]

这个不起作用,我回到原来的第三行,而不是第一行。

我做错了什么?对于记录,索引变量的属性位于下一段代码中。索引的长度如预期的那样,即原始tibble的长度。

class(index)
[1] "logical"

str(index)
logi [1:5220] TRUE FALSE .......

length(index)
[1] 5220 

dim(df)
[1] 5220 9

class(df)
[1] "tbl_df"     "tbl"        "data.frame"

由于

2 个答案:

答案 0 :(得分:2)

你正在处理一个逻辑向量而你想要与之相反,所以你想要把NOT。

您需要!index,而不是-index。所以在你的情况下:df[!index,]

答案 1 :(得分:1)

使用tibble,我们可以使用filter

library(tidyverse)
df %>% 
   filter(index)

如果我们想要反过来,则否定(!

df %>%
   filter(!index)

数据

set.seed(24)
index <- sample(c(TRUE, FALSE), 10, replace = TRUE)
df <- tibble(col1 = 1:10)