郡名を割り当てなければならない一連のメディア ソースがあります。郡の割り当てが 1 つしかない特定の情報源 (地元の新聞など) の場合、これはかなり単純でしたswitch
。情報源名に基づいて郡名を割り当てる関数に基づいて郡名変数を作成しました。サンプル:
switchfun <- function(x) {switch(x, 'Morning Call' = 'Lehigh', 'Inquirer' =
'Philadelphia', 'Daily Ledger' = 'Mercer', 'Null') }
County.Name <- as.character(lapply(Source, switchfun))
しかし、データセット内のすべての郡に割り当てたい情報源 (NPR、AP など) があります。これは本質的に、ソースが「国」であるレコードを複製し、そのレコードをデータセット内のすべての郡に割り当てることです。
dput
現在のファイル レイアウトの:
structure(list(Source = structure(c(5L, 2L, 4L, 3L, 7L, 1L, 6L
), .Label = c("Associated Press", "Daily Ledger", "Herald Tribune",
"Inquirer", "Morning Call", "NPR", "Yahoo News"), class = "factor"),
County = structure(c(1L, 2L, 4L, 3L, NA, NA, NA), .Label = c("Lehigh",
"Mercer", "Montgomery", "Philadelphia"), class = "factor"),
Score = c(3L, 10L, 4L, 8L, 1L, 3L, 6L)), .Names = c("Source",
"County", "Score"), class = "data.frame", row.names = c(NA, -7L
))
現在のファイルでは、NPR、Associated Press、および Yahoo News には関連する郡 (「NA」) がありません。
dput
希望するファイル レイアウトの:
structure(list(Source = structure(c(5L, 2L, 4L, 3L, 7L, 7L, 7L,
7L, 1L, 1L, 1L, 1L, 6L, 6L, 6L, 6L), .Label = c("Associated Press",
"Daily Ledger", "Herald Tribune", "Inquirer", "Morning Call",
"NPR", "Yahoo News"), class = "factor"), County = structure(c(1L,
2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L), .Label = c("Lehigh",
"Mercer", "Montgomery", "Philadelphia"), class = "factor"), Score = c(3L,
10L, 4L, 8L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L)), .Names = c("Source",
"County", "Score"), class = "data.frame", row.names = c(NA, -16L
))
目的のレイアウトでは、データセット内の 4 つの郡のそれぞれに、各国の情報源とそのスコアを割り当てました。たとえば、Yahoo News とそのスコア 1 は 4 回複製され、Lehigh、Philadelphia、Montgomery、および Mercer 郡に関連付けられています。そして、「NA」のCountyを持つYahoo Newsの記録は消えてしまいます。私の実際のデータセットには約 100 の郡があるため、Yahoo ニュースとそれに関連する変数 (スコア、日付、作成者など - 合計で約 60 の変数があります) は 100 回複製されます。switch
また、これらの新しく「複製された」レコードの郡を、上記の関数を使用して作成した County.Name 変数に割り当てたいと考えています。2 つの County Name フィールドは必要ありません。County.Names の下に新しく作成されたすべての郡が必要です。