我想查找和删除包含 r 语言中某些数据的行? [复制]
Posted
技术标签:
【中文标题】我想查找和删除包含 r 语言中某些数据的行? [复制]【英文标题】:i want to find and delete rows that contain certain data in r language? [duplicate] 【发布时间】: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 中删除十个值。
【问题讨论】:
这能回答你的问题吗? Filter rows which contain a certain string 是的,它成功了。谢谢。 【参考方案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 = "-")
【讨论】:
以上是关于我想查找和删除包含 r 语言中某些数据的行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
R语言删除包含缺失值的行并将字符数据列(character)转化为因子列(factor)实战