匹配两个列表,一个包含部分字符串,另一个包含完整字符串,如果匹配 return 整个字符串
Match two lists, one with partial strings and another with full string, return the whole string if match
匹配 R 中的两个列表,一个包含部分字符串,另一个包含完整字符串,如果匹配,return 整个字符串。 Return 仅唯一匹配项(一次)。
所以,假设我有一个 CSV 文件,每一行都有一个长字符串(长列表)。然后,我使用 substr 缩短字符串,然后使用 unique 删除所有重复的字符串。然后我想比较长字符串列表 df12
和唯一短列表 df14
,如果在部分字符串搜索中有唯一匹配(df14
vs df12
),那么return 来自 df12
.
的整个字符串
这是df12
(长字符串列表)
[1] I like Whosebug very much today
[2] I like Whosebug much today
[3] I dont like Whosebug very much today
[4] I dont like you!
[5] What?
df13<-substr(df12, start=0, stop=30)
这是 df13
(缩短的字符串 - 不唯一)
[1] I like stacko
[2] I like stacko
[3] I dont like s
[4] I dont like y
[5] What?
df14<-unique(df13)
这是 df14
(缩短的字符串 - 应用独特方法后的独特字符串)
[1] I like stacko
[2] I dont like s
[3] I dont like y
[4] What?
这是我最终想要的结果
[1] I like Whosebug very much today
[2] I dont like Whosebug very much today
[3] I dont like you!
[4] What?
这是一种将 df14 中的每个短字符串与 df12 中所有可能的匹配项进行匹配并输出它们的方法,包括将短字符串作为列表中的索引以了解哪个与 df12 中的匹配:
df1 <- c('I like Whosebug very much today', 'I like Whosebug much today',
'I dont like Whosebug very much today', 'I dont like you!',
'What?')
df2 <- c('I like stacko', 'I dont like s', 'I dont like y', 'What?')
sapply(df2, function(x) df1[grepl(x, df1)])
$`I like stacko`
[1] "I like Whosebug very much today" "I like Whosebug much today"
$`I dont like s`
[1] "I dont like Whosebug very much today"
$`I dont like y`
[1] "I dont like you!"
$`What?`
[1] "What?"
匹配 R 中的两个列表,一个包含部分字符串,另一个包含完整字符串,如果匹配,return 整个字符串。 Return 仅唯一匹配项(一次)。
所以,假设我有一个 CSV 文件,每一行都有一个长字符串(长列表)。然后,我使用 substr 缩短字符串,然后使用 unique 删除所有重复的字符串。然后我想比较长字符串列表 df12
和唯一短列表 df14
,如果在部分字符串搜索中有唯一匹配(df14
vs df12
),那么return 来自 df12
.
这是df12
(长字符串列表)
[1] I like Whosebug very much today
[2] I like Whosebug much today
[3] I dont like Whosebug very much today
[4] I dont like you!
[5] What?
df13<-substr(df12, start=0, stop=30)
这是 df13
(缩短的字符串 - 不唯一)
[1] I like stacko
[2] I like stacko
[3] I dont like s
[4] I dont like y
[5] What?
df14<-unique(df13)
这是 df14
(缩短的字符串 - 应用独特方法后的独特字符串)
[1] I like stacko
[2] I dont like s
[3] I dont like y
[4] What?
这是我最终想要的结果
[1] I like Whosebug very much today
[2] I dont like Whosebug very much today
[3] I dont like you!
[4] What?
这是一种将 df14 中的每个短字符串与 df12 中所有可能的匹配项进行匹配并输出它们的方法,包括将短字符串作为列表中的索引以了解哪个与 df12 中的匹配:
df1 <- c('I like Whosebug very much today', 'I like Whosebug much today',
'I dont like Whosebug very much today', 'I dont like you!',
'What?')
df2 <- c('I like stacko', 'I dont like s', 'I dont like y', 'What?')
sapply(df2, function(x) df1[grepl(x, df1)])
$`I like stacko`
[1] "I like Whosebug very much today" "I like Whosebug much today"
$`I dont like s`
[1] "I dont like Whosebug very much today"
$`I dont like y`
[1] "I dont like you!"
$`What?`
[1] "What?"