我是R的初学者,正在处理一个简单的文件。我想过滤数据,并了解哪些行在"family"列中有一些值,其中包含";Ja"在他们的姓。我用的是"dply">
清单8是我的清单:输入图片描述
感谢大家的支持和帮助。
下面,我将展示如何返回data.frame
的行,其中列Family
的行值包含子字符串"Ja"
手动创建类似数据
我将首先创建类似的数据,添加一个假人的姓"jay"演示区分大小写的过滤。
library(dplyr)
df <- data.frame(Name = c("rachel","rachal","fake","sina","Toni"),
Family = c("Jackson","Jacki","jay", "Tobi;","Brayan"),
Scores = rnorm(5),
City = c("Shangha","Beijing","fake","Rome","Tokyo"))
print(df)
#> Name Family Scores City
#> 1 rachel Jackson 0.9383872 Shangha
#> 2 rachal Jacki 0.8026869 Beijing
#> 3 fake jay -1.4608956 fake
#> 4 sina Tobi; 0.6325120 Rome
#> 5 Toni Brayan -0.6269983 Tokyo
返回匹配项(区分大小写)
返回Family列包含子字符串"&;Ja"的行。这将区分大小写。
df %>% filter(grepl("Ja", Family))
#> Name Family Scores City
#> 1 rachel Jackson 0.9383872 Shangha
#> 2 rachal Jacki 0.8026869 Beijing
返回匹配项(忽略大小写)
如果我们想要不考虑"Ja"大小写的行呢?
df %>% filter(grepl("Ja", Family, ignore.case = TRUE))
#> Name Family Scores City
#> 1 rachel Jackson -0.34802411 Shangha
#> 2 rachal Jacki 0.02267559 Beijing
#> 3 fake jay -0.74904081 fake
返回行索引
如果我们不想要行,而只想要行索引/数字呢?
grep("Ja", df$Family)
#> [1] 1 2