私はrep()
関数を使用して、文字列内の各要素を何度も繰り返します。私が持っている各キャラクタには状態に関する情報が含まれており、キャラクタベクタの最初の3つの要素が3回繰り返され、4番目の要素が5回繰り返される必要があります。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
...
私は、次のコマンドを使用して所望の出力を得ることができたが、私はすべての50件の州を走るてるときは少し不便です。さらに、私はアラバマ州に237都市ある別の列を持っているかもしれません、そして、私は必然的に最初の列の名前と2番目の列の値を一致させる問題に遭遇します。
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を支持する手続き型プログラミングを捨てることはいつ重要なのですか(プログラマーではないので、2番目の部分は本当にばかげた質問かもしれません)。 oop関連のソリューションの場合