有没有办法告诉复制函数制作字符串多长时间?

问题描述

我正在使用 RStudio 并尝试计算一个包含一组重复字母的新列,这些字母的值取自相应列。

例如,我在下面的 ColA 中有数据,但想创建 ColB:

ColA <- c(1,4,6)

我希望ColB是这样的:

ColA ColB
1 p
4 pppp
6 pppppp

我一直在尝试使用复制,但我不知道如何使字符串的频率/长度等于相应 ColA 的值。

df %>% mutate(ColB = rep("p",length.out = df$ColA,nrow(df)))

我似乎无法让 rep 接受除数据行数以外的另一个值 - 有没有办法也输入字符串长度?

非常感谢任何帮助! :-)

解决方法

这是一个 base R 解决方案:

df$ColB <- strrep("p",df$ColA)

  ColA   ColB
1    1      p
2    4   pppp
3    6 pppppp

您也可以将其与 dplyr 一起使用:

df %>% 
  mutate(ColB = strrep("p",ColA))