【问题标题】:How do i paste consecutive values in a dataframe together into a new column [duplicate]如何将数据框中的连续值一起粘贴到新列中[重复]
【发布时间】:2021-06-16 01:33:50
【问题描述】:

我想将数据框中的连续值粘贴到同一数据框中的新列中。

我的数据框是这样的:

x y
blue A234
green,black A5
yellow A6
blue,green,purple A7

我想要第三列“z”,它将值粘贴到“x”中,如下所示:

x y z
blue A234 blue
green,black A5 blue,green,black
yellow A6 blue,green,black,yellow
blue,green,purple A7 blue,green,purple,blue,green,black,yellow

【问题讨论】:

    标签: r for-loop tidyverse


    【解决方案1】:

    tidyverse 中,这可以通过accumulatepaste/str_c 完成

    library(dplyr)
    library(purrr)
    library(stringr)
    df1 %>%
        mutate(z = accumulate(x, str_c, sep=","))
    

    -输出

    #                x    y                                         z
    #1              blue A234                                      blue
    #2       green,black   A5                          blue,green,black
    #3            yellow   A6                   blue,green,black,yellow
    #4 blue,green,purple   A7 blue,green,black,yellow,blue,green,purple
    

    Reduce 的类似选项来自base R

    Reduce(function(...) paste(..., sep=","), df1$x, accumulate = TRUE)
    

    数据

    df1 <- structure(list(x = c("blue", "green,black", "yellow", "blue,green,purple"
    ), y = c("A234", "A5", "A6", "A7")), class = "data.frame", row.names = c(NA, 
    -4L))
    

    【讨论】:

      猜你喜欢
      • 2019-11-18
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 2021-03-22
      相关资源
      最近更新 更多