R 名称搜索的数据表解决方案
我有一个data.table“NAMES”,其中包含各种列名;所有列都包含一个名称列表,这些名称的大小写可能正确,也可能不正确,例如,有些首字母是大写的,但有些不是大写的 我想创建“名称\子集”,它只包含“名称”中的行,这些行在任何列中包含ma或ma或am或am 我目前的尝试不是一个好的解决方案,因为我不知道如何在data.table中搜索所有行,但一次只搜索一列,而且我不知道如何使其不区分大小写。多谢各位 我希望的结果是:R 名称搜索的数据表解决方案,r,data.table,grepl,R,Data.table,Grepl,我有一个data.table“NAMES”,其中包含各种列名;所有列都包含一个名称列表,这些名称的大小写可能正确,也可能不正确,例如,有些首字母是大写的,但有些不是大写的 我想创建“名称\子集”,它只包含“名称”中的行,这些行在任何列中包含ma或ma或am或am 我目前的尝试不是一个好的解决方案,因为我不知道如何在data.table中搜索所有行,但一次只搜索一列,而且我不知道如何使其不区分大小写。多谢各位 我希望的结果是: NAMES = data.table(names1 = c("John
NAMES = data.table(names1 = c("John","mary","james","Mark","abi"),
list1 = c("bam","cameron","tony","lucas","tim"))
NAMES_SUBSET = NAMES[names1 %like% "ma" | list1 %like% "am"]
我会用这样的方式:
names1 list1
John bam
mary cameron
james tony
Mark lucas
> NAMES_SUBSET
names1 list1
1: John bam
2: mary cameron
3: james tony
4: Mark lucas
如果您经常这样做,可以将其编写为如下函数:
names1 list1
John bam
mary cameron
james tony
Mark lucas
> NAMES_SUBSET
names1 list1
1: John bam
2: mary cameron
3: james tony
4: Mark lucas
也许是像名字一样的东西[applyNAMES,1,functionx anygreplam | ma,tolowerx]?
> search_all_dtcols(NAMES, "ma|am")
names1 list1
1: John bam
2: mary cameron
3: james tony
4: Mark lucas