从 str_extract_all 的结果中找到原始字符串
Find the original strings from the results of str_extract_all
我对编码还很年轻,经常无法靠自己找出更好的函数或结果来完成某些任务。
在对特定模式使用 str_extract_all
后,我对跟踪原始字符串有疑问。
这是一个名为“水果”的示例数据。
index
Fruit
1
apple
2
banana
3
strawberry
4
pineapple
5
bell pepper
我用str_extract_all(fruit, "(.)\1")
提取了重复的辅音,得到了“pp”、“rr”、“pp”、“ll”、“pp”。
还通过 str_subset(fruit, "(.)\1")
跟踪了(那些提取结果的)原始字符串。这是我得到的。
index
fruit
1
apple
2
strawberry
3
pineapple
4
bell pepper
但是,我想知道“每个”提取结果的来源。因此,使用 str_subset
无法捕获来自同一字符串的那些结果。以下数据框是我期望获得的。
index
fruit
pattern
1
apple
pp
2
strawberry
rr
3
pineapple
pp
4
bell pepper
ll
4
bell pepper
pp
我不确定我是否清楚地解释了我的问题。任何反馈和想法将不胜感激。
你的代码已经做了你想要的。您只需要创建一个额外的列来存储 str_extract_all
的输出,如下所示:
由于 str_extract_all()
returns 一个列表,我们需要 unnest
将列表变成行。
代码的最后一行是创建一个连续的索引(因为“banana”没有了,索引2也没有了)。
library(tidyverse)
fruit %>%
mutate(pattern = str_extract_all(Fruit, "(.)\1")) %>%
unnest(pattern) %>%
mutate(index = as.numeric(as.factor(index)))
# A tibble: 5 × 3
index Fruit pattern
<dbl> <chr> <chr>
1 1 apple pp
2 2 strawberry rr
3 3 pineapple pp
4 4 bell pepper ll
5 4 bell pepper pp
我对编码还很年轻,经常无法靠自己找出更好的函数或结果来完成某些任务。
在对特定模式使用 str_extract_all
后,我对跟踪原始字符串有疑问。
这是一个名为“水果”的示例数据。
index | Fruit |
---|---|
1 | apple |
2 | banana |
3 | strawberry |
4 | pineapple |
5 | bell pepper |
我用str_extract_all(fruit, "(.)\1")
提取了重复的辅音,得到了“pp”、“rr”、“pp”、“ll”、“pp”。
还通过 str_subset(fruit, "(.)\1")
跟踪了(那些提取结果的)原始字符串。这是我得到的。
index | fruit |
---|---|
1 | apple |
2 | strawberry |
3 | pineapple |
4 | bell pepper |
但是,我想知道“每个”提取结果的来源。因此,使用 str_subset
无法捕获来自同一字符串的那些结果。以下数据框是我期望获得的。
index | fruit | pattern |
---|---|---|
1 | apple | pp |
2 | strawberry | rr |
3 | pineapple | pp |
4 | bell pepper | ll |
4 | bell pepper | pp |
我不确定我是否清楚地解释了我的问题。任何反馈和想法将不胜感激。
你的代码已经做了你想要的。您只需要创建一个额外的列来存储 str_extract_all
的输出,如下所示:
由于 str_extract_all()
returns 一个列表,我们需要 unnest
将列表变成行。
代码的最后一行是创建一个连续的索引(因为“banana”没有了,索引2也没有了)。
library(tidyverse)
fruit %>%
mutate(pattern = str_extract_all(Fruit, "(.)\1")) %>%
unnest(pattern) %>%
mutate(index = as.numeric(as.factor(index)))
# A tibble: 5 × 3
index Fruit pattern
<dbl> <chr> <chr>
1 1 apple pp
2 2 strawberry rr
3 3 pineapple pp
4 4 bell pepper ll
5 4 bell pepper pp