代码之家  ›  专栏  ›  技术社区  ›  Chris Ruehlemann

如何根据R[duplicate]中一列中存在多个值来复制行

  •  0
  • Chris Ruehlemann  · 技术社区  · 4 年前

    我有一个包含单词拼音的数据框 trans ,和一列 pos_num 它记录了音素的位置 t 在转录字符串中。

    df <- data.frame(
      trans = c("ðət", "əˈpærəntli", "ˈkɒntrækt", "təˈwɔːdz", "pəˈteɪtəʊz"), stringsAsFactors = F
    )
    df$pos_num <- sapply(strsplit(df$trans, ""), function(x) which(grepl("t", x)))
    
    df
           trans pos_num
    1        ðət       3
    2 əˈpærəntli       8
    3  ˈkɒntrækt    5, 9
    4   təˈwɔːdz       1
    5 pəˈteɪtəʊz    4, 7
    

    t 位置编号 . 在这种情况下,我希望复制整个行,原始行包含一个值,复制行包含另一个值。预期输出为:

    df
           trans pos_num
    1        ðət       3
    2 əˈpærəntli       8
    3  ˈkɒntrækt       5
    4  ˈkɒntrækt       9
    5   təˈwɔːdz       1
    6 pəˈteɪtəʊz       4
    7 pəˈteɪtəʊz       7
    

    如何做到这一点?(似乎有一些关于这个问题的帖子是针对其他编程语言的,但不是R。)

    1 回复  |  直到 4 年前
        1
  •  1
  •   Vasily A    4 年前
    library(data.table)
    setDT(df)
    df[, .(pos_num = unlist((pos_num))),by = .(trans)]