gpt4 book ai didi

string - 将字符串中的每个元素重复一定次数

转载 作者:行者123 更新时间:2023-12-01 08:17:41 25 4
gpt4 key购买 nike

我正在使用 rep()函数将字符串中的每个元素重复多次。我拥有的每个字符都包含一个状态的信息,我需要字符向量的前三个元素重复 3 次,第四个元素重复 5 次。

所以可以说我有以下字符向量。

al <- c("AlabamaCity", "AlabamaCityST", "AlabamaCityState", "AlabamaZipCode") 
ak <- c("AlaskaCity", "AlaskaCityST", "AlaskaCityState", "AlaskaZipCode")
az <- c("ArizonaCity", "ArizonaCityST", "ArizonaCityState", "ArizonaZipCode")
ar <- c("ArkansasCity", "ArkansasCityST", "ArkansasCityState", "ArkansasZipCode")

我想最终得到以下输出。
AlabamaCity
AlabamaCity
AlabamaCity
AlabamaCityST
AlabamaCityST
AlabamaCityST
AlabamaCityState
AlabamaCityState
AlabamaCityState
AlabamaZipCode
AlabamaZipCode
AlabamaZipCode
AlabamaZipCode
AlabamaZipCode
AlabamaZipCode
...

我能够使用以下命令获得所需的输出,但是当我运行所有五十个州时有点不方便。另外,我可能还有一个包含阿拉巴马州 237 个城市的列,我将不可避免地遇到将第一列中的名称与第二列中的值进行匹配的问题。
   dat = data.frame(name=c(rep(al[1:3],each=3), rep(al[4],each=6), 
rep(ak[1:3],each=3), rep(ak[4],each=6)))
dat


dat2 = data.frame(name=c(rep(al[1:3],each=3), rep(al[4],each=6),
rep(ak[1:3],each=3), rep(ak[4],each=6)),
city=c(rep("x",each=15), rep("y",each=15)))
dat2

当然,在现实生活中,“x”和“y”不会是单个值。

所以我的问题涉及是否有更有效的方法来执行此任务。与这个问题密切相关的是,什么时候在 R 中放弃过程式编程转而使用 OOP 变得很重要。(不是程序员,所以第二部分可能是一个非常愚蠢的问题)更重要的是,这是一个我应该看的任务吗?对于 oop 相关的解决方案。

最佳答案

根据 ?rep , times=可以是向量。那么,这个怎么样:

dat <- data.frame(name=rep(al, times=c(3,3,3,6)))

如果您的“状态”数据在列表中,也会更方便。
stateData <- list(al,ak,az,ar)
Data <- lapply(stateData, function(x) data.frame(name=rep(x, times=c(3,3,3,6))))
Data <- do.call(rbind, Data)

关于string - 将字符串中的每个元素重复一定次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com