我使用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(不是程序員,因此第二部分可能是一個非常愚蠢的問題)。更重要的是,這是一個我應該看的任務爲一個相關的解決方案。