gpt4 book ai didi

r - 在另一个字符串中为 data.frame 的每一行查找字符串位置(索引)

转载 作者:行者123 更新时间:2023-12-04 15:23:13 26 4
gpt4 key购买 nike

在我的 data.frame 中,我有两列文本(例如,str1 和 str2)。我想为每一行添加一个列,指示 str2 在 str1 中的位置。

data.frame 的示例:

dt <- data.frame(str1 = c('ab/some words,cd/some words', 
'cd/some words,ab/some words', 'ab/some words,cd/some words', 'ef/some
words,ab/some words'), str2 = c('ab', 'cd', 'cd', 'ef'))

我想为每一行添加一个列,指示 str2 在 str1 中的位置。

这行不通:

dt$str2.pos <- regexpr(dt$str2, dt$str1)

我正在尝试获得如下所示的输出:

                         str1 str2 str2.pos
1 ab/some words,cd/some words ab 1
2 cd/some words,ab/some words cd 1
3 ab/some words,cd/some words cd 15
4 ef/some words,ab/some words ef 1

最佳答案

我们可以做到

dt$str2.pos <- diag(sapply(dt$str2, function(x) regexpr(x, dt$str1)))
dt$str2.pos
#[1] 1 1 15 1

如果我们对相应的行执行此操作,则使用 mapply/Map

mapply(regexpr, dt$str2, dt$str1)
#[1] 1 1 15 1

关于r - 在另一个字符串中为 data.frame 的每一行查找字符串位置(索引),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41519886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com