0
我有名称的数据帧为字符串高效过滤器(第一个和最后,有些是大写一些都没有)以及与每个名称相关联的分数:R:在多列
df = data.frame(name = c("Mark Johnson","John Roberts","Sue mcguire","kat Long","dan Scott"), name2 = c("sam marks", "Mark Jones", "tim briar", "jonas Stark", "Mike Robinson"), score = c(2,3,4,5,5))
name name2 score
1 Mark Johnson sam marks 2
2 John Roberts Mark Jones 3
3 Sue mcguire tim briar 4
4 kat Long jonas Stark 5
5 dan Scott Mike Robinson 5
我想成为能够仅仅通过包括要么列第一或最后一个名称,例如过滤我的数据帧:
df %>% filter(name %in% c("mark","john","Long","briar"))
我想避免使用grepl
,而使用filter
和%in%
。然而,这将返回:
[1] name score
<0 rows> (or 0-length row.names)
而非行1,2,3,和4 name|name2
也没有工作。也许这是因为我需要在name
和name2
列上做一个strsplit()
或类似的东西,然后重新组合。然而,这不是很优雅,我的df
实际上是数百万行,所以对我来说性能很重要。什么是完成这个最好的方法?
想,如果我的'df'是SQLite表这项工作?这就是为什么我想避免使用'grepl',因为它不兼容。这是我指的链接:https://stackoverflow.com/questions/27468166/grepl-for-dplyr-sql-table – warship
@军舰这是非常糟糕的,有不兼容的问题。如果你想在%中使用%,那么你可能需要使用'separate'分割成两列。顺便说一句,alll的功能将与sqlite – akrun
@ warship基于链接'%like%'应该工作。你有没有尝试 – akrun