是否有R函数可将数字按指定次数重复并用分号分隔?
R实现DataFrame列值重复指定次数并以分号分隔
以下是几种简便的实现方式,以你提供的示例数据为例:
示例数据
x <- 3 input <- structure(list(input = c(67L, 24L, 72L, 3L)), row.names = c(NA, -4L), class = "data.frame")
方法一:Base R 原生实现
利用sapply逐行处理,结合rep重复值、paste拼接字符串:
input$output <- sapply(input$input, function(val) paste(rep(val, x), collapse = ";"))
方法二:dplyr + purrr 管道风格实现
适合习惯 tidyverse 语法的场景:
library(dplyr) library(purrr) input <- input %>% mutate(output = map_chr(input, ~paste(rep(.x, x), collapse = ";")))
方法三:Base R 矩阵转置拼接
通过矩阵构造重复值后逐行拼接:
input$output <- apply(matrix(rep(input$input, x), ncol = x), 1, paste, collapse = ";")
执行任意一种方法后,input都会生成符合要求的output列,结果与你给出的示例输出一致。
内容的提问来源于stack exchange,提问作者HarpoonHarry
相关产品推荐
相关产品推荐

