根据R中的单词顺序保留数据帧的特定行

阿耶

我有一个这样的数据框(df)。我想要做的是遍历每个ID的值,如果有两个以相同单词开头的字符串,我想将它们进行比较以保持不同的值。

df <- data.frame(id = c(1,1,2,3,3,4,4,4,4,5), 
                 value = c('australia', 'australia sydney', 'brazil',
                           'australia', 'usa', 'australia sydney', 'australia sydney randwick', 'australia', 'australia sydney circular quay', 'australia sydney'))

我想让第一个单词进行比较,如果它们不同,则保留两个单词,但是如果它们相同,则转到第二个单词进行比较,依此类推...就像ID 1一样,我想保留该行值“澳大利亚悉尼”,并且要在ID 4中保留“澳大利亚悉尼圆形码头”,“澳大利亚悉尼兰德威克”这两个值。对于此示例,我需要获取第2:5、7、9、10行

预期产量

27 ϕ 9

根据您的编辑,您可以在组内检查是否有任何条目与任何其他条目的开头匹配,并删除符合以下条件的条目:

library(tidyverse)

df %>%
  group_by(id) %>%
  filter(!map_lgl(seq_along(value), ~ any(if (length(value) == 1) FALSE else str_detect(value[-.x], paste0("^", value[.x])))))

# A tibble: 7 x 2
# Groups:   id, value [7]
     id value                         
  <dbl> <chr>                         
1     1 australia sydney              
2     2 brazil                        
3     3 australia                     
4     3 usa                           
5     4 australia sydney randwick     
6     4 australia sydney circular quay
7     5 australia sydney  

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

遍历R中的数据帧并保留R中的特定行

在保留每个数据帧中的顺序或行的同时查找

根据该行 R 中的名称将变量添加到特定行中的数据帧

在R中,如何根据第二个数据帧中的组保留一个数据帧中的所有行?

R.根据第二秒的值保留一个数据帧中的行

R:根据数据帧列中的行值删除行

根据tidyverse中R中的特定行保留重复项

根据多列在R中组合数据帧行

根据通用值梳理R中的数据帧行

R:折叠行并根据数据帧中的条件更改值

根据向量以特定顺序对数据帧行进行排序

如何通过根据另一个数据帧的行名的顺序映射一个数据帧的列名来对R中的数据帧进行排序?

如何按R中的特定行拆分数据帧

读取数据帧直到 R 中的特定行

R根据行名传播数据帧

从R中的数据帧向数据帧列表中的特定行添加列

根据列匹配创建要保留在 r 中的行顺序

按R中的特定顺序对数据帧中的列进行排序

PCA,同时保留R中的行顺序

将数据放入R中的特定行顺序

Pandas - 根据列中的排序顺序拆分数据帧

使用 group_by 计算 R 中 2 个数据帧之间的特定单词出现次数

根据R中另一个数据帧中的行为数据帧中的行设置子集

R-来自数据帧中两个子集的新变量,行中的随机顺序

R anti_join 只保留一个数据帧中的行

从R中的数据帧列表中删除特定的数据帧

在R中按行更改数据帧的顺序和名称

根据每个数据帧中的值对数据帧列表中数据帧的顺序进行排序

如何根据R中时间变量的范围重复数据帧中的行?