【问题标题】:i want to find and delete rows that contain certain data in r language? [duplicate]我想查找和删除包含 r 语言中某些数据的行? [复制]
【发布时间】:2020-05-25 00:30:52
【问题描述】:

a- b- c- d
1- 安缦- 蛋糕- 红
2-Manish-cookie-蓝色
3-Anish-cola-black
a-b-c-d
4-Pankaj-风筝绿
5-Anuj-jet-棕色
a-b-c-d
6-Ami-goat-white

所有数据都在单个 data.frame 中。我想找到除标头之外的值(a b c d)的位置,我想从 data.frame 中删除十个值。

【问题讨论】:

标签: r


【解决方案1】:
library(dplyr)

df %>% filter(!str_detect(column_name, "a-b-c-d"))

【讨论】:

  • a b c d 是在表内多次复制的标题值。它们不是单个字符。
  • 所以?您能否提供一个可重现的示例?
  • 你的答案是正确的 bu 而不是所有的 "a-b-c-d" jst 包括 "a" 就足以删除整行。
【解决方案2】:

也许有更简单的方法来做问题所要求的,但以下方法可行。

library(dplyr)

pattern <- paste(names(df1), collapse = "|")

df1 %>%
  mutate_all(~(stringr::str_detect(., pattern = pattern))) %>%
  mutate(ok = rowSums(.) != ncol(.)) %>%
  select(ok) %>%
  bind_cols(df1, .) %>%
  dplyr::filter(ok) %>%
  select(-ok)
#  a      b      c     d
#1 1   Aman   cake   red
#2 2 Manish cookie  blue
#3 3  Anish   cola black
#4 4 Pankaj   kite green
#5 5   Anuj    jet brown
#6 6    Ami   goat white

数据。

df1 <- read.table(text = "
a- b- c- d
1- Aman- cake- red
2-Manish-cookie-blue
3-Anish-cola-black
a-b-c-d
4-Pankaj-kite-green
5-Anuj-jet-brown
a-b-c-d
6-Ami-goat-white
", header = TRUE, sep = "-")

【讨论】:

    猜你喜欢
    • 2012-10-12
    • 2014-04-03
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多