删除行匹配向量
Remove rows matching vector
我有一个包含 12 列和 4225 行的数据框。
其中一列是 id 并包含数字。
我想根据向量删除一些行。
id_to_remove <- c(2721,3893, 3904, 3905, 3907, 3908, 3909, 3910, 3912)
我尝试了很多解决方案,但我无法使其正常工作,例如
data <- data[!data$id == 2721| 3893|3904| 3905| 3907| 3908| 3909| 3910| 3912]
有什么想法吗?
也许试试这个:
#Code
data <- data[!data$id %in% id_to_remove,]
这是使用 dplyr
包的替代解决方案。使用 filter
和 %in%
根据 id_to_remove
向量中的值对数据进行子集化。
library(tibble)
library(dplyr)
id_to_remove <- c(2721, 3893, 3904, 3905, 3907, 3908, 3909, 3910, 3912)
data <- tibble(
id = c(2721, 3893, 3904, 3905, 3907, 3908, 3909, 3910, 3912, 1234, 4567, 1234, 6567, 8765, 5678),
foo = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
)
data %>%
filter(!(id %in% id_to_remove))
#> # A tibble: 6 x 2
#> id foo
#> <dbl> <dbl>
#> 1 1234 10
#> 2 4567 11
#> 3 1234 12
#> 4 6567 13
#> 5 8765 14
#> 6 5678 15
由 reprex package (v0.3.0)
于 2020-11-19 创建
我有一个包含 12 列和 4225 行的数据框。
其中一列是 id 并包含数字。
我想根据向量删除一些行。
id_to_remove <- c(2721,3893, 3904, 3905, 3907, 3908, 3909, 3910, 3912)
我尝试了很多解决方案,但我无法使其正常工作,例如
data <- data[!data$id == 2721| 3893|3904| 3905| 3907| 3908| 3909| 3910| 3912]
有什么想法吗?
也许试试这个:
#Code
data <- data[!data$id %in% id_to_remove,]
这是使用 dplyr
包的替代解决方案。使用 filter
和 %in%
根据 id_to_remove
向量中的值对数据进行子集化。
library(tibble)
library(dplyr)
id_to_remove <- c(2721, 3893, 3904, 3905, 3907, 3908, 3909, 3910, 3912)
data <- tibble(
id = c(2721, 3893, 3904, 3905, 3907, 3908, 3909, 3910, 3912, 1234, 4567, 1234, 6567, 8765, 5678),
foo = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
)
data %>%
filter(!(id %in% id_to_remove))
#> # A tibble: 6 x 2
#> id foo
#> <dbl> <dbl>
#> 1 1234 10
#> 2 4567 11
#> 3 1234 12
#> 4 6567 13
#> 5 8765 14
#> 6 5678 15
由 reprex package (v0.3.0)
于 2020-11-19 创建