我使用rep()
函数多次重复字符串中的每个元素。每个字符都包含一个状态的信息,我需要重复三次字符向量的前三个元素,第四个元素重复五次。使用rep()函数
因此,让我们说我有以下字符向量。
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(不是程序员,因此第二部分可能是一个非常愚蠢的问题)。更重要的是,这是一个我应该看的任务为一个相关的解决方案。