增加str_sub中的end参数,直到我们在数据框中获得唯一值

时间:2020-04-03 09:53:57

标签: r dplyr

这是我的玩具数据

df <- tibble::tribble(
        ~names,
        "apple alpha",
        "grapes beta",
        "orange gamma",
        'graphite alpha',
        "a bc",
        "apple gamma")

以下是示例代码:

df_1 <- df %>% 
  mutate(first_word = word(names),
         first_n_letters = str_sub(names, start = 1L, end = 4L) %>% str_trim(),
         small_name = if_else(nchar(first_word) > nchar(first_n_letters), first_word, first_n_letters))

我想继续增加上面代码中str_sub的end参数,直到

n_distinct(df_1 %>% select(small_name)) == nrow(df_1)

换句话说,nchar(small_name)应该足够大,以便在数据帧中没有重复的small_name。

因此,在这种情况下,循环中的迭代器应停止在7处,因为它将在df_1中提供small_name的唯一值。

1 个答案:

答案 0 :(得分:1)

仅定义您自己的函数来执行此操作可能最简单:

var port2 ='';

app.post('/', function(req, res){ 
    var hostname = req.body.hostname;
    port2 = req.body.port2;
});

var url ="mongodb://"+hostname+":"+port2;

reprex package(v0.3.0)于2020-04-03创建