Row_wise 和 column_wise 使用 fill 和 down/across 填充 NA
Row_wise and column_wise fill NA's using fill and down/across
我有以下数据,我正在尝试“清理”它。我想做三件事:
-
- 在
...2
列中填写 NA
,使其类似于:
Andalucía Almería
Andalucía Cadiz
Andalucía Cordoba
Andalucía Granada
Andalucía Huelva
...
Aragón Huesca
Aragón Teruel
Aragón Zaragoza
Asturias Asturias
...
所以,group_by和fill
向下。
-
- 完全相同,但
row_wise()
-
- 填满
NA
后,将两行粘贴在一起(也将两列粘贴在一起),例如:
Andalucía_Almería
Andalucía_Cadiz
Andalucía_Cordoba
Andalucía_Granada
等等
因此,观察结果被压缩为单列和单行。
数据
df <- structure(list(...2 = c(NA, NA, "España", "Andalucía", NA,
NA, NA, NA, NA, NA, NA, "Aragón", NA, NA, "Asturias", "Baleares (Islas)",
"Canarias", NA, "Cantabria", "Castilla y León", NA, NA, NA,
NA, NA, NA, NA, NA, "Castilla La Mancha", NA, NA, NA, NA, "Cataluña",
NA, NA, NA, "Comunidad Valenciana", NA, NA, "Extremadura", NA,
"Galicia", NA, NA, NA, "Madrid (Comunidad de)", "Murcia (Región de)",
"Navarra (Comunidad Foral de)", "País Vasco", NA, NA, "Rioja (La)",
"Ceuta y Melilla", NA), ...3 = c(NA, NA, NA, "Almería", "Cádiz",
"Córdoba", "Granada", "Huelva", "Jaén", "Málaga", "Sevilla",
"Huesca", "Teruel", "Zaragoza", "Asturias", "Baleares", "Palmas_(Las)",
"Tenerife", "Cantabria", "Avila", "Burgos", "León", "Palencia",
"Salamanca", "Segovia", "Soria", "Valladolid", "Zamora", "Albacete",
"Ciudad_Real", "Cuenca", "Guadalajara", "Toledo", "Barcelona",
"Girona", "Lleida", "Tarragona", "Alicante", "Castellón", "Valencia",
"Badajoz", "Cáceres", "Coruña", "Lugo", "Ourense", "Pontevedra",
"Madrid", "Murcia", "Navarra", "Alava", "Guipúzcoa", "Vizcaya",
"Rioja_(La)", "Ceuta", "Melilla"), ...4 = c("España", NA, "222295",
"5200", "6331", "3285", "4750", "3039", "2969", "9914", "9450",
"1622", "658", "4127", "5046", "5262", "5248", "4614", "3360",
"1178", "2434", "2540", "808", "1710", "721", "502", "2470",
"789", "1818", "2688", "845", "1581", "4014", "21587", "4643",
"2455", "5364", "13776", "4539", "13802", "2607", "1821", "4383",
"1172", "977", "2759", "22573", "8500", "2420", "1486", "2004",
"3969", "1840", "249", "396"), ...5 = c("Andalucía", "Almería",
"4432", "4303", "2", "2", "49", "0", "5", "9", "4", "0", "0",
"0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1",
"0", "0", "3", "0", "0", "0", "0", "0", "1", "0", "1", "7", "1",
"2", "1", "1", "1", "0", "0", "0", "10", "27", "0", "0", "0",
"0", "0", "0", "1"), ...6 = c(NA, "Cádiz", "5622", "4", "5357",
"4", "14", "6", "3", "86", "82", "1", "0", "0", "2", "4", "2",
"1", "2", "0", "3", "1", "0", "3", "0", "0", "1", "0", "0", "4",
"0", "0", "0", "3", "0", "0", "1", "2", "1", "2", "1", "0", "2",
"0", "3", "1", "13", "9", "0", "1", "0", "0", "1", "2", "0"),
...7 = c(NA, "Córdoba", "3463", "20", "25", "3019", "24",
"20", "17", "270", "18", "0", "0", "0", "1", "2", "2", "1",
"0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "1", "5",
"0", "1", "5", "1", "0", "0", "1", "4", "0", "1", "8", "0",
"1", "0", "0", "0", "14", "1", "0", "0", "0", "0", "0", "0",
"0"), ...8 = c(NA, "Granada", "4394", "118", "6", "6", "4067",
"3", "28", "100", "8", "0", "0", "1", "0", "2", "1", "0",
"0", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "7",
"0", "0", "2", "3", "5", "0", "1", "5", "4", "0", "0", "0",
"2", "0", "0", "0", "7", "14", "0", "0", "0", "0", "0", "0",
"0"), ...9 = c(NA, "Huelva", "2609", "0", "11", "0", "1",
"2502", "1", "6", "56", "0", "0", "0", "0", "0", "1", "0",
"0", "1", "0", "0", "1", "0", "0", "0", "0", "0", "0", "2",
"0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "15", "0",
"0", "1", "0", "1", "3", "1", "2", "0", "0", "1", "0", "0",
"1"), ...10 = c(NA, "Jaén", "3028", "123", "11", "18", "74",
"0", "2642", "83", "14", "0", "0", "0", "0", "1", "1", "0",
"1", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "6",
"0", "0", "1", "1", "3", "0", "0", "11", "6", "5", "0", "0",
"2", "0", "0", "0", "16", "6", "1", "0", "0", "0", "0", "1",
"0"), ...11 = c(NA, "Málaga", "8862", "24", "77", "36",
"100", "7", "21", "8405", "42", "0", "0", "0", "6", "4",
"4", "8", "3", "2", "3", "1", "0", "2", "0", "0", "0", "0",
"3", "3", "0", "2", "4", "3", "1", "1", "0", "35", "2", "3",
"8", "2", "3", "4", "0", "0", "25", "11", "0", "0", "0",
"1", "0", "1", "5"), ...12 = c(NA, "Sevilla", "10210", "25",
"447", "34", "32", "316", "14", "197", "8975", "0", "0",
"2", "3", "0", "6", "1", "3", "4", "2", "3", "0", "3", "3",
"1", "2", "3", "0", "9", "0", "2", "1", "2", "0", "1", "1",
"7", "5", "5", "52", "5", "1", "0", "1", "6", "25", "5",
"0", "1", "2", "1", "2", "0", "0"), ...13 = c("Aragón",
"Huesca", "991", "1", "1", "1", "2", "0", "0", "1", "0",
"897", "1", "34", "1", "0", "0", "1", "0", "0", "1", "0",
"0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "6",
"0", "6", "15", "0", "9", "2", "1", "0", "0", "0", "0", "0",
"4", "1", "1", "0", "0", "0", "3", "0", "0"), ...14 = c(NA,
"Teruel", "524", "1", "0", "0", "3", "0", "0", "0", "0",
"5", "417", "27", "0", "0", "0", "1", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "3",
"1", "2", "2", "1", "20", "37", "0", "0", "0", "0", "0",
"0", "3", "0", "0", "0", "0", "0", "0", "0", "0"), ...15 = c(NA,
"Zaragoza", "4652", "4", "4", "0", "3", "2", "4", "12", "1",
"264", "38", "3859", "5", "4", "2", "5", "10", "2", "3",
"0", "1", "5", "2", "30", "0", "1", "3", "1", "0", "2", "0",
"6", "6", "10", "100", "34", "134", "20", "0", "2", "3",
"2", "2", "1", "30", "1", "22", "1", "1", "0", "10", "0",
"0"), ...16 = c("Asturias", NA, "4709", "1", "0", "3", "2",
"0", "0", "5", "2", "1", "0", "1", "4446", "4", "2", "8",
"12", "3", "2", "87", "2", "7", "1", "0", "4", "6", "0",
"1", "1", "1", "3", "0", "2", "2", "0", "15", "0", "1", "1",
"2", "7", "28", "3", "6", "31", "3", "1", "1", "0", "1",
"0", "0", "0"), ...17 = c("Baleares", "Baleares", "5047",
"9", "8", "8", "25", "0", "8", "5", "7", "2", "1", "2", "21",
"4776", "26", "10", "2", "0", "3", "4", "4", "2", "0", "0",
"3", "3", "4", "7", "1", "0", "3", "23", "0", "1", "2", "8",
"3", "7", "4", "1", "11", "4", "2", "5", "13", "13", "0",
"0", "1", "1", "3", "0", "1"), ...18 = c("Canarias", "Palmas (Las)",
"5047", "0", "9", "3", "3", "2", "3", "5", "2", "0", "0",
"2", "3", "3", "4883", "44", "4", "1", "0", "1", "0", "2",
"0", "0", "13", "0", "0", "0", "0", "3", "1", "5", "0", "0",
"2", "1", "0", "3", "2", "2", "9", "0", "1", "5", "21", "3",
"0", "0", "0", "0", "1", "0", "5"), ...19 = c(NA, "Tenerife",
"4585", "4", "0", "3", "3", "1", "1", "4", "1", "0", "0",
"1", "5", "3", "112", "4408", "2", "1", "0", "2", "1", "0",
"0", "1", "0", "0", "0", "0", "0", "0", "1", "2", "0", "1",
"0", "6", "2", "0", "1", "1", "0", "0", "2", "3", "9", "1",
"0", "0", "1", "1", "0", "0", "1"), ...20 = c("Cantabria",
"Cantabria", "2742", "4", "2", "0", "3", "0", "1", "5", "5",
"1", "0", "1", "31", "3", "6", "2", "2571", "0", "19", "2",
"15", "1", "0", "0", "2", "1", "0", "3", "0", "1", "2", "2",
"0", "0", "1", "5", "3", "4", "1", "1", "2", "0", "0", "0",
"18", "3", "1", "0", "0", "18", "2", "0", "0"), ...21 = c("Castilla y León",
"Avila", "748", "0", "1", "0", "0", "0", "0", "3", "0", "0",
"0", "0", "5", "1", "0", "0", "2", "665", "2", "0", "0",
"13", "1", "0", "1", "0", "0", "0", "0", "0", "3", "0", "0",
"0", "0", "10", "0", "1", "2", "4", "2", "0", "0", "0", "31",
"1", "0", "0", "0", "0", "0", "0", "0"), ...22 = c(NA, "Burgos",
"2237", "2", "7", "0", "0", "0", "1", "6", "1", "4", "0",
"1", "20", "18", "3", "1", "44", "3", "2020", "2", "11",
"2", "1", "5", "6", "0", "0", "1", "0", "0", "1", "0", "0",
"0", "1", "18", "9", "6", "0", "0", "2", "2", "1", "0", "15",
"3", "2", "9", "1", "4", "4", "0", "0"), ...23 = c(NA, "León",
"2389", "1", "3", "0", "2", "0", "0", "8", "1", "0", "0",
"1", "29", "1", "4", "3", "2", "1", "1", "2211", "1", "8",
"1", "0", "4", "6", "0", "1", "0", "0", "1", "3", "0", "0",
"1", "38", "1", "2", "1", "0", "9", "9", "3", "9", "20",
"2", "0", "0", "0", "1", "0", "0", "0"), ...24 = c(NA, "Palencia",
"745", "0", "0", "0", "0", "1", "0", "4", "0", "0", "0",
"0", "5", "0", "1", "0", "33", "0", "3", "0", "661", "1",
"0", "0", "8", "0", "0", "1", "0", "3", "0", "0", "1", "0",
"0", "3", "1", "4", "0", "1", "4", "0", "0", "0", "8", "1",
"0", "0", "0", "1", "0", "0", "0"), ...25 = c(NA, "Salamanca",
"1530", "1", "6", "0", "1", "1", "0", "7", "2", "0", "0",
"1", "8", "0", "6", "3", "6", "9", "3", "1", "1", "1415",
"1", "2", "9", "4", "0", "0", "0", "0", "3", "0", "0", "0",
"0", "5", "1", "0", "1", "4", "2", "1", "0", "2", "15", "7",
"0", "0", "0", "0", "1", "1", "0"), ...26 = c(NA, "Segovia",
"526", "1", "1", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "1", "0", "1", "0", "2", "4", "5", "0", "0", "0", "438",
"4", "17", "1", "0", "2", "0", "0", "1", "1", "0", "0", "0",
"8", "4", "2", "0", "2", "2", "0", "0", "0", "25", "2", "0",
"0", "0", "1", "0", "0", "0"), ...27 = c(NA, "Soria", "381",
"0", "0", "1", "0", "0", "0", "0", "0", "0", "2", "8", "0",
"0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "346",
"0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "3",
"2", "3", "1", "0", "1", "0", "0", "0", "6", "0", "0", "0",
"0", "0", "3", "0", "0"), ...28 = c(NA, "Valladolid", "2549",
"2", "3", "0", "2", "4", "0", "5", "2", "3", "0", "0", "11",
"0", "2", "8", "40", "7", "15", "19", "27", "5", "5", "0",
"2254", "22", "0", "3", "0", "0", "2", "0", "0", "1", "1",
"29", "4", "2", "0", "1", "25", "3", "2", "2", "27", "6",
"2", "1", "1", "0", "1", "0", "0"), ...29 = c(NA, "Zamora",
"714", "2", "0", "0", "0", "0", "0", "2", "1", "0", "0",
"0", "6", "0", "0", "0", "2", "0", "0", "4", "2", "17", "0",
"0", "12", "636", "0", "1", "0", "0", "0", "0", "0", "0",
"0", "7", "0", "1", "1", "2", "1", "2", "0", "6", "9", "0",
"0", "0", "0", "0", "0", "0", "0"), ...30 = c("Castilla La Mancha",
"Albacete", "1763", "3", "1", "0", "6", "0", "1", "0", "1",
"0", "0", "1", "0", "1", "1", "1", "0", "0", "0", "0", "0",
"1", "0", "1", "1", "0", "1602", "3", "10", "1", "3", "0",
"0", "1", "0", "70", "9", "6", "1", "0", "0", "0", "0", "0",
"9", "28", "1", "0", "0", "0", "0", "0", "0"), ...31 = c(NA,
"Ciudad_Real", "2357", "6", "3", "4", "7", "1", "2", "17",
"0", "0", "0", "0", "2", "0", "0", "0", "0", "1", "1", "3",
"1", "1", "1", "0", "1", "0", "4", "2191", "3", "1", "12",
"0", "0", "0", "0", "33", "1", "2", "5", "1", "0", "2", "2",
"0", "40", "7", "0", "0", "0", "0", "1", "0", "1"), ...32 = c(NA,
"Cuenca", "737", "0", "0", "0", "0", "1", "0", "0", "1",
"0", "0", "0", "2", "0", "0", "0", "0", "0", "0", "0", "0",
"1", "0", "0", "0", "0", "28", "15", "607", "13", "9", "0",
"0", "0", "0", "13", "9", "11", "0", "0", "1", "0", "0",
"0", "22", "3", "0", "0", "0", "0", "1", "0", "0"), ...33 = c(NA,
"Guadalajara", "1098", "13", "4", "1", "1", "1", "2", "4",
"0", "0", "1", "1", "3", "0", "2", "4", "0", "2", "0", "0",
"0", "2", "2", "2", "0", "0", "1", "3", "1", "936", "1",
"3", "1", "0", "0", "23", "8", "10", "1", "3", "1", "2",
"0", "0", "57", "1", "0", "0", "0", "0", "1", "0", "0"),
...34 = c(NA, "Toledo", "2802", "7", "3", "4", "5", "0",
"2", "11", "1", "0", "0", "2", "11", "3", "1", "0", "2",
"10", "0", "1", "0", "1", "1", "0", "0", "1", "0", "43",
"7", "1", "2412", "1", "0", "0", "1", "80", "16", "14", "12",
"18", "2", "0", "0", "0", "118", "10", "1", "0", "0", "0",
"0", "0", "0"), ...35 = c("Cataluña", "Barcelona", "25887",
"109", "38", "63", "94", "24", "69", "62", "70", "106", "66",
"69", "27", "200", "32", "24", "15", "10", "20", "36", "10",
"12", "8", "22", "9", "13", "18", "48", "17", "14", "9",
"21178", "1125", "374", "1204", "69", "145", "93", "68",
"18", "17", "43", "24", "17", "78", "91", "7", "2", "2",
"6", "12", "0", "0"), ...36 = c(NA, "Girona", "3659", "2",
"2", "4", "2", "1", "6", "7", "0", "5", "2", "5", "1", "5",
"7", "1", "2", "0", "0", "1", "0", "4", "0", "3", "2", "0",
"0", "1", "4", "2", "0", "91", "3435", "9", "15", "5", "3",
"3", "5", "6", "1", "1", "2", "2", "2", "7", "1", "0", "0",
"0", "1", "0", "1"), ...37 = c(NA, "Lleida", "2142", "0",
"2", "1", "1", "1", "2", "2", "0", "24", "1", "3", "0", "2",
"0", "1", "0", "1", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "0", "0", "1", "0", "46", "7", "1951", "69", "2", "3",
"3", "2", "0", "4", "1", "1", "6", "1", "2", "0", "0", "0",
"0", "1", "0", "0"), ...38 = c(NA, "Tarragona", "4154", "3",
"3", "7", "7", "0", "9", "2", "2", "20", "10", "12", "7",
"3", "3", "6", "5", "1", "0", "1", "1", "1", "0", "1", "0",
"0", "1", "4", "2", "0", "6", "58", "34", "37", "3845", "3",
"26", "5", "5", "2", "6", "0", "2", "2", "3", "4", "2", "0",
"0", "0", "3", "0", "0"), ...39 = c("Comunidad Valenciana",
"Alicante", "11850", "22", "2", "6", "34", "0", "15", "10",
"3", "2", "2", "3", "11", "7", "3", "1", "3", "2", "3", "5",
"0", "1", "1", "1", "1", "2", "34", "16", "5", "2", "6",
"3", "0", "1", "2", "11337", "10", "53", "5", "1", "14",
"1", "1", "1", "26", "188", "1", "0", "0", "2", "1", "0",
"0"), ...40 = c(NA, "Castellón", "3462", "2", "0", "1",
"3", "0", "2", "0", "1", "2", "7", "1", "0", "6", "0", "2",
"0", "1", "2", "0", "0", "0", "0", "1", "0", "0", "4", "1",
"2", "0", "1", "3", "3", "6", "16", "2", "3346", "40", "2",
"0", "0", "0", "0", "0", "1", "3", "0", "0", "0", "0", "0",
"0", "1"), ...41 = c(NA, "Valencia", "14330", "21", "8",
"6", "6", "1", "18", "8", "4", "12", "106", "4", "8", "47",
"4", "2", "4", "2", "0", "1", "1", "2", "1", "0", "1", "0",
"59", "16", "42", "3", "7", "7", "1", "10", "3", "396", "356",
"13080", "4", "2", "9", "0", "1", "1", "36", "25", "0", "1",
"1", "1", "1", "1", "0"), ...42 = c("Extremadura", "Badajoz",
"2415", "1", "13", "4", "2", "50", "3", "26", "16", "0",
"0", "1", "2", "0", "3", "0", "0", "0", "0", "0", "0", "4",
"1", "0", "0", "1", "0", "6", "0", "0", "3", "1", "0", "0",
"2", "3", "1", "2", "2213", "35", "3", "0", "0", "0", "16",
"0", "1", "0", "1", "1", "0", "0", "0"), ...43 = c(NA, "Cáceres",
"1669", "0", "4", "2", "1", "13", "2", "11", "4", "0", "0",
"1", "1", "2", "1", "0", "1", "1", "0", "1", "0", "23", "0",
"0", "1", "10", "0", "4", "0", "0", "8", "0", "0", "0", "0",
"3", "2", "2", "36", "1502", "2", "0", "1", "1", "21", "6",
"0", "0", "0", "2", "0", "0", "0"), ...44 = c("Galicia",
"Coruña", "3997", "3", "3", "0", "2", "0", "1", "2", "2",
"1", "0", "0", "14", "5", "13", "8", "1", "2", "0", "6",
"0", "0", "0", "1", "0", "1", "0", "0", "0", "0", "3", "4",
"0", "0", "1", "16", "3", "0", "0", "0", "3764", "39", "13",
"59", "17", "9", "0", "0", "0", "0", "3", "0", "1"), ...45 = c(NA,
"Lugo", "1021", "0", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "0", "3", "0", "0", "0", "1", "0", "0", "1", "1", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"1", "1", "0", "0", "0", "0", "55", "920", "3", "23", "3",
"7", "0", "0", "1", "0", "0", "0", "0"), ...46 = c(NA, "Ourense",
"968", "0", "0", "0", "0", "0", "0", "2", "0", "0", "0",
"0", "0", "0", "1", "0", "0", "0", "0", "6", "0", "0", "0",
"0", "0", "3", "0", "0", "0", "1", "0", "1", "1", "0", "2",
"2", "1", "0", "0", "0", "36", "5", "843", "56", "8", "0",
"0", "0", "0", "0", "0", "0", "0"), ...47 = c(NA, "Pontevedra",
"2612", "3", "0", "0", "2", "1", "1", "2", "2", "0", "0",
"1", "3", "3", "20", "8", "1", "0", "0", "0", "1", "2", "0",
"0", "0", "2", "0", "0", "0", "0", "0", "1", "0", "0", "0",
"10", "2", "1", "0", "0", "70", "3", "30", "2431", "9", "1",
"0", "0", "0", "2", "0", "0", "0"), ...48 = c("Madrid", NA,
"30307", "263", "200", "40", "117", "63", "68", "395", "106",
"59", "3", "50", "266", "134", "61", "32", "178", "435",
"60", "102", "27", "108", "247", "65", "97", "49", "27",
"268", "142", "584", "1484", "98", "13", "16", "39", "1056",
"291", "337", "130", "184", "222", "78", "21", "87", "21606",
"300", "52", "3", "9", "16", "17", "1", "1"), ...49 = c("Murcia",
"Murcia", "8096", "66", "4", "0", "18", "0", "8", "12", "1",
"2", "0", "1", "4", "3", "1", "0", "1", "1", "0", "0", "0",
"2", "0", "0", "1", "0", "25", "3", "0", "2", "4", "5", "0",
"2", "0", "226", "1", "8", "0", "0", "2", "2", "0", "3",
"19", "7668", "1", "0", "0", "0", "0", "0", "0"), ...50 = c("Navarra",
"Navarra", "2531", "3", "6", "1", "1", "4", "3", "19", "0",
"45", "0", "18", "10", "5", "0", "5", "10", "0", "5", "1",
"2", "4", "0", "2", "1", "0", "0", "4", "1", "0", "3", "6",
"0", "2", "17", "25", "26", "2", "3", "1", "7", "1", "1",
"1", "14", "5", "2229", "1", "7", "3", "27", "0", "0"), ...51 = c("País Vasco",
"Alava", "1721", "1", "6", "0", "2", "0", "0", "7", "0",
"4", "1", "1", "4", "0", "6", "3", "28", "1", "33", "10",
"3", "6", "0", "0", "2", "5", "0", "0", "0", "0", "1", "2",
"0", "1", "3", "24", "11", "2", "1", "5", "7", "2", "2",
"3", "9", "1", "9", "1426", "12", "14", "63", "0", "0"),
...52 = c(NA, "Guipúzcoa", "2570", "2", "10", "0", "4",
"2", "2", "7", "3", "127", "0", "3", "8", "2", "11", "2",
"20", "2", "12", "11", "14", "25", "2", "7", "7", "3", "0",
"2", "0", "1", "0", "2", "0", "10", "6", "36", "20", "3",
"7", "2", "35", "5", "4", "6", "14", "3", "62", "5", "1942",
"17", "102", "0", "0"), ...53 = c(NA, "Vizcaya", "5097",
"14", "17", "1", "14", "8", "4", "41", "4", "31", "0", "4",
"45", "5", "11", "7", "328", "2", "204", "13", "18", "22",
"2", "4", "6", "16", "1", "0", "0", "4", "4", "10", "3",
"9", "3", "60", "27", "9", "4", "9", "28", "11", "6", "13",
"32", "9", "9", "14", "21", "3873", "117", "0", "0"), ...54 = c("Rioja (La)",
"Rioja (La)", "1591", "1", "4", "0", "1", "1", "0", "1",
"1", "4", "0", "5", "3", "3", "1", "1", "19", "0", "7", "1",
"0", "0", "0", "0", "3", "0", "0", "0", "0", "0", "0", "2",
"0", "0", "5", "18", "5", "1", "0", "1", "3", "0", "0", "0",
"8", "0", "12", "20", "1", "1", "1458", "0", "0"), ...55 = c("Ceuta y Melilla",
"Ceuta", "292", "0", "17", "2", "5", "2", "0", "11", "3",
"0", "0", "0", "1", "0", "0", "1", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "0", "0", "2", "0", "2", "0", "0", "0", "0", "0", "3",
"0", "0", "0", "0", "0", "0", "242", "0"), ...56 = c(NA,
"Melilla", "431", "5", "0", "0", "5", "0", "0", "26", "0",
"0", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "0",
"0", "1", "0", "1", "0", "0", "1", "0", "0", "3", "0", "0",
"0", "0", "0", "3", "1", "0", "0", "2", "0", "0", "0", "3",
"1", "0", "0", "0", "0", "0", "0", "377"), ...57 = c(NA,
NA, 183, 0, 0, 0, 11, 0, 0, 0, 3, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 2, 27, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 134)), row.names = c(NA,
-55L), class = c("tbl_df", "tbl", "data.frame"))
编辑:
预期输出:
将有一个数据 frame/matrix,其中行名是左侧的项目,列名是顶部的项目。
数据看起来像:
# A tibble: 55 × 56
...2 ...3 ...4 ...5 ...6 ...7 ...8 ...9 ...10 ...11 ...12 ...13 ...14 ...15 ...16 ...17 ...18 ...19 ...20 ...21 ...22 ...23 ...24 ...25 ...26 ...27 ...28 ...29 ...30 ...31
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 NA NA Espa… Anda… NA NA NA NA NA NA NA Arag… NA NA Astu… Bale… Cana… NA Cant… Cast… NA NA NA NA NA NA NA NA Cast… NA
2 NA NA NA Alme… Cádiz Córd… Gran… Huel… Jaén Mála… Sevi… Hues… Teru… Zara… NA Bale… Palm… Tene… Cant… Avila Burg… León Pale… Sala… Sego… Soria Vall… Zamo… Alba… Ciud…
3 España NA 2222… 4432 5622 3463 4394 2609 3028 8862 10210 991 524 4652 4709 5047 5047 4585 2742 748 2237 2389 745 1530 526 381 2549 714 1763 2357
4 Andal… Alme… 5200 4303 4 20 118 0 123 24 25 1 1 4 1 9 0 4 4 0 2 1 0 1 1 0 2 2 3 6
5 NA Cádiz 6331 2 5357 25 6 11 11 77 447 1 0 4 0 8 9 0 2 1 7 3 0 6 1 0 3 0 1 3
6 NA Córd… 3285 2 4 3019 6 0 18 36 34 1 0 0 3 8 3 3 0 0 0 0 0 0 0 1 0 0 0 4
7 NA Gran… 4750 49 14 24 4067 1 74 100 32 2 3 3 2 25 3 3 3 0 0 2 0 1 0 0 2 0 6 7
8 NA Huel… 3039 0 6 20 3 2502 0 7 316 0 0 2 0 0 2 1 0 0 0 0 1 1 0 0 4 0 0 1
9 NA Jaén 2969 5 3 17 28 1 2642 21 14 0 0 4 0 8 3 1 1 0 1 0 0 0 0 0 0 0 1 2
10 NA Mála… 9914 9 86 270 100 6 83 8405 197 1 0 12 5 5 5 4 5 3 6 8 4 7 0 0 5 2 0 17
这就是我所希望的:
out <- df %>%
fill(`...2`, .direction = c("down")) %>%
unite(col = "CCAA", c(1, 2)) %>%
mutate(
"CCAA" = gsub("NA_NA|_NA|NA", "", CCAA)
) %>%
t() %>%
as.data.frame() %>%
fill(V1, .direction = "down") %>%
unite(col = "CCAA", c(1, 2)) %>%
mutate(
"CCAA" = gsub("NA_NA|_NA|NA", "", CCAA)
) %>%
t() %>%
as.data.frame() %>%
janitor::row_to_names(1) %>%
rename(CCAA = c(1)) %>%
remove_rownames() %>%
column_to_rownames("CCAA") %>%
tibble()
给出:
# A tibble: 53 × 54
España Andalucía_Almería Andalucía_Cádiz Andalucía_Córdoba Andalucía_Granada Andalucía_Huelva Andalucía_Jaén Andalucía_Málaga Andalucía_Sevilla Aragón_Huesca Aragón_Teruel
<fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct>
1 222295 4432 5622 3463 4394 2609 3028 8862 10210 991 524
2 5200 4303 4 20 118 0 123 24 25 1 1
3 6331 2 5357 25 6 11 11 77 447 1 0
4 3285 2 4 3019 6 0 18 36 34 1 0
5 4750 49 14 24 4067 1 74 100 32 2 3
6 3039 0 6 20 3 2502 0 7 316 0 0
7 2969 5 3 17 28 1 2642 21 14 0 0
8 9914 9 86 270 100 6 83 8405 197 1 0
9 9450 4 82 18 8 56 14 42 8975 0 0
10 1622 0 1 0 0 0 0 0 0 897 5
这可以以更紧凑的方式完成 - 即利用 unite
中的 na.rm
删除 NA
,然后代替双 t
ranspose,在将行转换为列名
之前,仅 order
到 return 的第一个观察结果为 non-NA
library(dplyr)
library(tidyr)
library(tibble)
out <- df %>%
fill(`...2`, .direction = c("down")) %>%
unite(col = "CCAA", c(1, 2), na.rm = TRUE) %>%
mutate(across(-CCAA, ~ .x[order(is.na(.x))])) %>%
janitor::row_to_names(1) %>%
setNames(c("CCAA", .[[1]][-1])) %>%
column_to_rownames("CCAA") %>%
type.convert(as.is = TRUE)
-输出
> head(out)
España Andalucía_Almería Andalucía_Cádiz Andalucía_Córdoba Andalucía_Granada Andalucía_Huelva
222295 Almería 5622 3463 4394 2609
España 5200 4432 4 20 118 0
Andalucía_Almería 6331 4303 5357 25 6 11
Andalucía_Cádiz 3285 2 4 3019 6 0
Andalucía_Córdoba 4750 2 14 24 4067 1
Andalucía_Granada 3039 49 6 20 3 2502
Andalucía_Jaén Andalucía_Málaga Andalucía_Sevilla Aragón_Huesca Aragón_Teruel Aragón_Zaragoza
3028 8862 10210 Huesca 524 4652
España 123 24 25 991 1 4
Andalucía_Almería 11 77 447 1 0 4
Andalucía_Cádiz 18 36 34 1 0 0
Andalucía_Córdoba 74 100 32 1 3 3
Andalucía_Granada 0 7 316 2 0 2
Asturias_Asturias Baleares (Islas)_Baleares Canarias_Palmas_(Las) Canarias_Tenerife
4709 Baleares Palmas (Las) 4585
España 1 5047 5047 4
Andalucía_Almería 0 9 0 0
Andalucía_Cádiz 3 8 9 3
Andalucía_Córdoba 2 8 3 3
Andalucía_Granada 0 25 3 1
Cantabria_Cantabria Castilla y León_Avila Castilla y León_Burgos Castilla y León_León
Cantabria Avila 2237 2389
España 2742 748 2 1
Andalucía_Almería 4 0 7 3
Andalucía_Cádiz 2 1 0 0
Andalucía_Córdoba 0 0 0 2
Andalucía_Granada 3 0 0 0
Castilla y León_Palencia Castilla y León_Salamanca Castilla y León_Segovia
745 1530 526
España 0 1 1
Andalucía_Almería 0 6 1
Andalucía_Cádiz 0 0 0
Andalucía_Córdoba 0 1 0
Andalucía_Granada 1 1 0
Castilla y León_Soria Castilla y León_Valladolid Castilla y León_Zamora
381 2549 714
España 0 2 2
Andalucía_Almería 0 3 0
Andalucía_Cádiz 1 0 0
Andalucía_Córdoba 0 2 0
Andalucía_Granada 0 4 0
Castilla La Mancha_Albacete Castilla La Mancha_Ciudad_Real Castilla La Mancha_Cuenca
Albacete 2357 737
España 1763 6 0
Andalucía_Almería 3 3 0
Andalucía_Cádiz 1 4 0
Andalucía_Córdoba 0 7 0
Andalucía_Granada 6 1 1
Castilla La Mancha_Guadalajara Castilla La Mancha_Toledo Cataluña_Barcelona Cataluña_Girona
1098 2802 Barcelona 3659
España 13 7 25887 2
Andalucía_Almería 4 3 109 2
Andalucía_Cádiz 1 4 38 4
Andalucía_Córdoba 1 5 63 2
Andalucía_Granada 1 0 94 1
Cataluña_Lleida Cataluña_Tarragona Comunidad Valenciana_Alicante Comunidad Valenciana_Castellón
2142 4154 Alicante 3462
España 0 3 11850 2
Andalucía_Almería 2 3 22 0
Andalucía_Cádiz 1 7 2 1
Andalucía_Córdoba 1 7 6 3
Andalucía_Granada 1 0 34 0
Comunidad Valenciana_Valencia Extremadura_Badajoz Extremadura_Cáceres Galicia_Coruña
14330 Badajoz 1669 Coruña
España 21 2415 0 3997
Andalucía_Almería 8 1 4 3
Andalucía_Cádiz 6 13 2 3
Andalucía_Córdoba 6 4 1 0
Andalucía_Granada 1 2 13 2
Galicia_Lugo Galicia_Ourense Galicia_Pontevedra Madrid (Comunidad de)_Madrid
1021 968 2612 30307
España 0 0 3 263
Andalucía_Almería 0 0 0 200
Andalucía_Cádiz 0 0 0 40
Andalucía_Córdoba 0 0 2 117
Andalucía_Granada 0 0 1 63
Murcia (Región de)_Murcia Navarra (Comunidad Foral de)_Navarra País Vasco_Alava
Murcia Navarra Alava
España 8096 2531 1721
Andalucía_Almería 66 3 1
Andalucía_Cádiz 4 6 6
Andalucía_Córdoba 0 1 0
Andalucía_Granada 18 1 2
País Vasco_Guipúzcoa País Vasco_Vizcaya Rioja (La)_Rioja_(La) Ceuta y Melilla_Ceuta
2570 5097 Rioja (La) Ceuta
España 2 14 1591 292
Andalucía_Almería 10 17 1 0
Andalucía_Cádiz 0 1 4 17
Andalucía_Córdoba 4 14 0 2
Andalucía_Granada 2 8 1 5
Ceuta y Melilla_Melilla NA
431 0
España 5 0
Andalucía_Almería 0 0
Andalucía_Cádiz 0 11
Andalucía_Córdoba 5 0
Andalucía_Granada 0 0
我有以下数据,我正在尝试“清理”它。我想做三件事:
-
- 在
...2
列中填写NA
,使其类似于:
- 在
Andalucía Almería
Andalucía Cadiz
Andalucía Cordoba
Andalucía Granada
Andalucía Huelva
...
Aragón Huesca
Aragón Teruel
Aragón Zaragoza
Asturias Asturias
...
所以,group_by和
fill
向下。-
- 完全相同,但
row_wise()
- 完全相同,但
-
- 填满
NA
后,将两行粘贴在一起(也将两列粘贴在一起),例如:
- 填满
Andalucía_Almería
Andalucía_Cadiz
Andalucía_Cordoba
Andalucía_Granada
等等
因此,观察结果被压缩为单列和单行。
数据
df <- structure(list(...2 = c(NA, NA, "España", "Andalucía", NA,
NA, NA, NA, NA, NA, NA, "Aragón", NA, NA, "Asturias", "Baleares (Islas)",
"Canarias", NA, "Cantabria", "Castilla y León", NA, NA, NA,
NA, NA, NA, NA, NA, "Castilla La Mancha", NA, NA, NA, NA, "Cataluña",
NA, NA, NA, "Comunidad Valenciana", NA, NA, "Extremadura", NA,
"Galicia", NA, NA, NA, "Madrid (Comunidad de)", "Murcia (Región de)",
"Navarra (Comunidad Foral de)", "País Vasco", NA, NA, "Rioja (La)",
"Ceuta y Melilla", NA), ...3 = c(NA, NA, NA, "Almería", "Cádiz",
"Córdoba", "Granada", "Huelva", "Jaén", "Málaga", "Sevilla",
"Huesca", "Teruel", "Zaragoza", "Asturias", "Baleares", "Palmas_(Las)",
"Tenerife", "Cantabria", "Avila", "Burgos", "León", "Palencia",
"Salamanca", "Segovia", "Soria", "Valladolid", "Zamora", "Albacete",
"Ciudad_Real", "Cuenca", "Guadalajara", "Toledo", "Barcelona",
"Girona", "Lleida", "Tarragona", "Alicante", "Castellón", "Valencia",
"Badajoz", "Cáceres", "Coruña", "Lugo", "Ourense", "Pontevedra",
"Madrid", "Murcia", "Navarra", "Alava", "Guipúzcoa", "Vizcaya",
"Rioja_(La)", "Ceuta", "Melilla"), ...4 = c("España", NA, "222295",
"5200", "6331", "3285", "4750", "3039", "2969", "9914", "9450",
"1622", "658", "4127", "5046", "5262", "5248", "4614", "3360",
"1178", "2434", "2540", "808", "1710", "721", "502", "2470",
"789", "1818", "2688", "845", "1581", "4014", "21587", "4643",
"2455", "5364", "13776", "4539", "13802", "2607", "1821", "4383",
"1172", "977", "2759", "22573", "8500", "2420", "1486", "2004",
"3969", "1840", "249", "396"), ...5 = c("Andalucía", "Almería",
"4432", "4303", "2", "2", "49", "0", "5", "9", "4", "0", "0",
"0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1",
"0", "0", "3", "0", "0", "0", "0", "0", "1", "0", "1", "7", "1",
"2", "1", "1", "1", "0", "0", "0", "10", "27", "0", "0", "0",
"0", "0", "0", "1"), ...6 = c(NA, "Cádiz", "5622", "4", "5357",
"4", "14", "6", "3", "86", "82", "1", "0", "0", "2", "4", "2",
"1", "2", "0", "3", "1", "0", "3", "0", "0", "1", "0", "0", "4",
"0", "0", "0", "3", "0", "0", "1", "2", "1", "2", "1", "0", "2",
"0", "3", "1", "13", "9", "0", "1", "0", "0", "1", "2", "0"),
...7 = c(NA, "Córdoba", "3463", "20", "25", "3019", "24",
"20", "17", "270", "18", "0", "0", "0", "1", "2", "2", "1",
"0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "1", "5",
"0", "1", "5", "1", "0", "0", "1", "4", "0", "1", "8", "0",
"1", "0", "0", "0", "14", "1", "0", "0", "0", "0", "0", "0",
"0"), ...8 = c(NA, "Granada", "4394", "118", "6", "6", "4067",
"3", "28", "100", "8", "0", "0", "1", "0", "2", "1", "0",
"0", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "7",
"0", "0", "2", "3", "5", "0", "1", "5", "4", "0", "0", "0",
"2", "0", "0", "0", "7", "14", "0", "0", "0", "0", "0", "0",
"0"), ...9 = c(NA, "Huelva", "2609", "0", "11", "0", "1",
"2502", "1", "6", "56", "0", "0", "0", "0", "0", "1", "0",
"0", "1", "0", "0", "1", "0", "0", "0", "0", "0", "0", "2",
"0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "15", "0",
"0", "1", "0", "1", "3", "1", "2", "0", "0", "1", "0", "0",
"1"), ...10 = c(NA, "Jaén", "3028", "123", "11", "18", "74",
"0", "2642", "83", "14", "0", "0", "0", "0", "1", "1", "0",
"1", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "6",
"0", "0", "1", "1", "3", "0", "0", "11", "6", "5", "0", "0",
"2", "0", "0", "0", "16", "6", "1", "0", "0", "0", "0", "1",
"0"), ...11 = c(NA, "Málaga", "8862", "24", "77", "36",
"100", "7", "21", "8405", "42", "0", "0", "0", "6", "4",
"4", "8", "3", "2", "3", "1", "0", "2", "0", "0", "0", "0",
"3", "3", "0", "2", "4", "3", "1", "1", "0", "35", "2", "3",
"8", "2", "3", "4", "0", "0", "25", "11", "0", "0", "0",
"1", "0", "1", "5"), ...12 = c(NA, "Sevilla", "10210", "25",
"447", "34", "32", "316", "14", "197", "8975", "0", "0",
"2", "3", "0", "6", "1", "3", "4", "2", "3", "0", "3", "3",
"1", "2", "3", "0", "9", "0", "2", "1", "2", "0", "1", "1",
"7", "5", "5", "52", "5", "1", "0", "1", "6", "25", "5",
"0", "1", "2", "1", "2", "0", "0"), ...13 = c("Aragón",
"Huesca", "991", "1", "1", "1", "2", "0", "0", "1", "0",
"897", "1", "34", "1", "0", "0", "1", "0", "0", "1", "0",
"0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "6",
"0", "6", "15", "0", "9", "2", "1", "0", "0", "0", "0", "0",
"4", "1", "1", "0", "0", "0", "3", "0", "0"), ...14 = c(NA,
"Teruel", "524", "1", "0", "0", "3", "0", "0", "0", "0",
"5", "417", "27", "0", "0", "0", "1", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "3",
"1", "2", "2", "1", "20", "37", "0", "0", "0", "0", "0",
"0", "3", "0", "0", "0", "0", "0", "0", "0", "0"), ...15 = c(NA,
"Zaragoza", "4652", "4", "4", "0", "3", "2", "4", "12", "1",
"264", "38", "3859", "5", "4", "2", "5", "10", "2", "3",
"0", "1", "5", "2", "30", "0", "1", "3", "1", "0", "2", "0",
"6", "6", "10", "100", "34", "134", "20", "0", "2", "3",
"2", "2", "1", "30", "1", "22", "1", "1", "0", "10", "0",
"0"), ...16 = c("Asturias", NA, "4709", "1", "0", "3", "2",
"0", "0", "5", "2", "1", "0", "1", "4446", "4", "2", "8",
"12", "3", "2", "87", "2", "7", "1", "0", "4", "6", "0",
"1", "1", "1", "3", "0", "2", "2", "0", "15", "0", "1", "1",
"2", "7", "28", "3", "6", "31", "3", "1", "1", "0", "1",
"0", "0", "0"), ...17 = c("Baleares", "Baleares", "5047",
"9", "8", "8", "25", "0", "8", "5", "7", "2", "1", "2", "21",
"4776", "26", "10", "2", "0", "3", "4", "4", "2", "0", "0",
"3", "3", "4", "7", "1", "0", "3", "23", "0", "1", "2", "8",
"3", "7", "4", "1", "11", "4", "2", "5", "13", "13", "0",
"0", "1", "1", "3", "0", "1"), ...18 = c("Canarias", "Palmas (Las)",
"5047", "0", "9", "3", "3", "2", "3", "5", "2", "0", "0",
"2", "3", "3", "4883", "44", "4", "1", "0", "1", "0", "2",
"0", "0", "13", "0", "0", "0", "0", "3", "1", "5", "0", "0",
"2", "1", "0", "3", "2", "2", "9", "0", "1", "5", "21", "3",
"0", "0", "0", "0", "1", "0", "5"), ...19 = c(NA, "Tenerife",
"4585", "4", "0", "3", "3", "1", "1", "4", "1", "0", "0",
"1", "5", "3", "112", "4408", "2", "1", "0", "2", "1", "0",
"0", "1", "0", "0", "0", "0", "0", "0", "1", "2", "0", "1",
"0", "6", "2", "0", "1", "1", "0", "0", "2", "3", "9", "1",
"0", "0", "1", "1", "0", "0", "1"), ...20 = c("Cantabria",
"Cantabria", "2742", "4", "2", "0", "3", "0", "1", "5", "5",
"1", "0", "1", "31", "3", "6", "2", "2571", "0", "19", "2",
"15", "1", "0", "0", "2", "1", "0", "3", "0", "1", "2", "2",
"0", "0", "1", "5", "3", "4", "1", "1", "2", "0", "0", "0",
"18", "3", "1", "0", "0", "18", "2", "0", "0"), ...21 = c("Castilla y León",
"Avila", "748", "0", "1", "0", "0", "0", "0", "3", "0", "0",
"0", "0", "5", "1", "0", "0", "2", "665", "2", "0", "0",
"13", "1", "0", "1", "0", "0", "0", "0", "0", "3", "0", "0",
"0", "0", "10", "0", "1", "2", "4", "2", "0", "0", "0", "31",
"1", "0", "0", "0", "0", "0", "0", "0"), ...22 = c(NA, "Burgos",
"2237", "2", "7", "0", "0", "0", "1", "6", "1", "4", "0",
"1", "20", "18", "3", "1", "44", "3", "2020", "2", "11",
"2", "1", "5", "6", "0", "0", "1", "0", "0", "1", "0", "0",
"0", "1", "18", "9", "6", "0", "0", "2", "2", "1", "0", "15",
"3", "2", "9", "1", "4", "4", "0", "0"), ...23 = c(NA, "León",
"2389", "1", "3", "0", "2", "0", "0", "8", "1", "0", "0",
"1", "29", "1", "4", "3", "2", "1", "1", "2211", "1", "8",
"1", "0", "4", "6", "0", "1", "0", "0", "1", "3", "0", "0",
"1", "38", "1", "2", "1", "0", "9", "9", "3", "9", "20",
"2", "0", "0", "0", "1", "0", "0", "0"), ...24 = c(NA, "Palencia",
"745", "0", "0", "0", "0", "1", "0", "4", "0", "0", "0",
"0", "5", "0", "1", "0", "33", "0", "3", "0", "661", "1",
"0", "0", "8", "0", "0", "1", "0", "3", "0", "0", "1", "0",
"0", "3", "1", "4", "0", "1", "4", "0", "0", "0", "8", "1",
"0", "0", "0", "1", "0", "0", "0"), ...25 = c(NA, "Salamanca",
"1530", "1", "6", "0", "1", "1", "0", "7", "2", "0", "0",
"1", "8", "0", "6", "3", "6", "9", "3", "1", "1", "1415",
"1", "2", "9", "4", "0", "0", "0", "0", "3", "0", "0", "0",
"0", "5", "1", "0", "1", "4", "2", "1", "0", "2", "15", "7",
"0", "0", "0", "0", "1", "1", "0"), ...26 = c(NA, "Segovia",
"526", "1", "1", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "1", "0", "1", "0", "2", "4", "5", "0", "0", "0", "438",
"4", "17", "1", "0", "2", "0", "0", "1", "1", "0", "0", "0",
"8", "4", "2", "0", "2", "2", "0", "0", "0", "25", "2", "0",
"0", "0", "1", "0", "0", "0"), ...27 = c(NA, "Soria", "381",
"0", "0", "1", "0", "0", "0", "0", "0", "0", "2", "8", "0",
"0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "346",
"0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "3",
"2", "3", "1", "0", "1", "0", "0", "0", "6", "0", "0", "0",
"0", "0", "3", "0", "0"), ...28 = c(NA, "Valladolid", "2549",
"2", "3", "0", "2", "4", "0", "5", "2", "3", "0", "0", "11",
"0", "2", "8", "40", "7", "15", "19", "27", "5", "5", "0",
"2254", "22", "0", "3", "0", "0", "2", "0", "0", "1", "1",
"29", "4", "2", "0", "1", "25", "3", "2", "2", "27", "6",
"2", "1", "1", "0", "1", "0", "0"), ...29 = c(NA, "Zamora",
"714", "2", "0", "0", "0", "0", "0", "2", "1", "0", "0",
"0", "6", "0", "0", "0", "2", "0", "0", "4", "2", "17", "0",
"0", "12", "636", "0", "1", "0", "0", "0", "0", "0", "0",
"0", "7", "0", "1", "1", "2", "1", "2", "0", "6", "9", "0",
"0", "0", "0", "0", "0", "0", "0"), ...30 = c("Castilla La Mancha",
"Albacete", "1763", "3", "1", "0", "6", "0", "1", "0", "1",
"0", "0", "1", "0", "1", "1", "1", "0", "0", "0", "0", "0",
"1", "0", "1", "1", "0", "1602", "3", "10", "1", "3", "0",
"0", "1", "0", "70", "9", "6", "1", "0", "0", "0", "0", "0",
"9", "28", "1", "0", "0", "0", "0", "0", "0"), ...31 = c(NA,
"Ciudad_Real", "2357", "6", "3", "4", "7", "1", "2", "17",
"0", "0", "0", "0", "2", "0", "0", "0", "0", "1", "1", "3",
"1", "1", "1", "0", "1", "0", "4", "2191", "3", "1", "12",
"0", "0", "0", "0", "33", "1", "2", "5", "1", "0", "2", "2",
"0", "40", "7", "0", "0", "0", "0", "1", "0", "1"), ...32 = c(NA,
"Cuenca", "737", "0", "0", "0", "0", "1", "0", "0", "1",
"0", "0", "0", "2", "0", "0", "0", "0", "0", "0", "0", "0",
"1", "0", "0", "0", "0", "28", "15", "607", "13", "9", "0",
"0", "0", "0", "13", "9", "11", "0", "0", "1", "0", "0",
"0", "22", "3", "0", "0", "0", "0", "1", "0", "0"), ...33 = c(NA,
"Guadalajara", "1098", "13", "4", "1", "1", "1", "2", "4",
"0", "0", "1", "1", "3", "0", "2", "4", "0", "2", "0", "0",
"0", "2", "2", "2", "0", "0", "1", "3", "1", "936", "1",
"3", "1", "0", "0", "23", "8", "10", "1", "3", "1", "2",
"0", "0", "57", "1", "0", "0", "0", "0", "1", "0", "0"),
...34 = c(NA, "Toledo", "2802", "7", "3", "4", "5", "0",
"2", "11", "1", "0", "0", "2", "11", "3", "1", "0", "2",
"10", "0", "1", "0", "1", "1", "0", "0", "1", "0", "43",
"7", "1", "2412", "1", "0", "0", "1", "80", "16", "14", "12",
"18", "2", "0", "0", "0", "118", "10", "1", "0", "0", "0",
"0", "0", "0"), ...35 = c("Cataluña", "Barcelona", "25887",
"109", "38", "63", "94", "24", "69", "62", "70", "106", "66",
"69", "27", "200", "32", "24", "15", "10", "20", "36", "10",
"12", "8", "22", "9", "13", "18", "48", "17", "14", "9",
"21178", "1125", "374", "1204", "69", "145", "93", "68",
"18", "17", "43", "24", "17", "78", "91", "7", "2", "2",
"6", "12", "0", "0"), ...36 = c(NA, "Girona", "3659", "2",
"2", "4", "2", "1", "6", "7", "0", "5", "2", "5", "1", "5",
"7", "1", "2", "0", "0", "1", "0", "4", "0", "3", "2", "0",
"0", "1", "4", "2", "0", "91", "3435", "9", "15", "5", "3",
"3", "5", "6", "1", "1", "2", "2", "2", "7", "1", "0", "0",
"0", "1", "0", "1"), ...37 = c(NA, "Lleida", "2142", "0",
"2", "1", "1", "1", "2", "2", "0", "24", "1", "3", "0", "2",
"0", "1", "0", "1", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "0", "0", "1", "0", "46", "7", "1951", "69", "2", "3",
"3", "2", "0", "4", "1", "1", "6", "1", "2", "0", "0", "0",
"0", "1", "0", "0"), ...38 = c(NA, "Tarragona", "4154", "3",
"3", "7", "7", "0", "9", "2", "2", "20", "10", "12", "7",
"3", "3", "6", "5", "1", "0", "1", "1", "1", "0", "1", "0",
"0", "1", "4", "2", "0", "6", "58", "34", "37", "3845", "3",
"26", "5", "5", "2", "6", "0", "2", "2", "3", "4", "2", "0",
"0", "0", "3", "0", "0"), ...39 = c("Comunidad Valenciana",
"Alicante", "11850", "22", "2", "6", "34", "0", "15", "10",
"3", "2", "2", "3", "11", "7", "3", "1", "3", "2", "3", "5",
"0", "1", "1", "1", "1", "2", "34", "16", "5", "2", "6",
"3", "0", "1", "2", "11337", "10", "53", "5", "1", "14",
"1", "1", "1", "26", "188", "1", "0", "0", "2", "1", "0",
"0"), ...40 = c(NA, "Castellón", "3462", "2", "0", "1",
"3", "0", "2", "0", "1", "2", "7", "1", "0", "6", "0", "2",
"0", "1", "2", "0", "0", "0", "0", "1", "0", "0", "4", "1",
"2", "0", "1", "3", "3", "6", "16", "2", "3346", "40", "2",
"0", "0", "0", "0", "0", "1", "3", "0", "0", "0", "0", "0",
"0", "1"), ...41 = c(NA, "Valencia", "14330", "21", "8",
"6", "6", "1", "18", "8", "4", "12", "106", "4", "8", "47",
"4", "2", "4", "2", "0", "1", "1", "2", "1", "0", "1", "0",
"59", "16", "42", "3", "7", "7", "1", "10", "3", "396", "356",
"13080", "4", "2", "9", "0", "1", "1", "36", "25", "0", "1",
"1", "1", "1", "1", "0"), ...42 = c("Extremadura", "Badajoz",
"2415", "1", "13", "4", "2", "50", "3", "26", "16", "0",
"0", "1", "2", "0", "3", "0", "0", "0", "0", "0", "0", "4",
"1", "0", "0", "1", "0", "6", "0", "0", "3", "1", "0", "0",
"2", "3", "1", "2", "2213", "35", "3", "0", "0", "0", "16",
"0", "1", "0", "1", "1", "0", "0", "0"), ...43 = c(NA, "Cáceres",
"1669", "0", "4", "2", "1", "13", "2", "11", "4", "0", "0",
"1", "1", "2", "1", "0", "1", "1", "0", "1", "0", "23", "0",
"0", "1", "10", "0", "4", "0", "0", "8", "0", "0", "0", "0",
"3", "2", "2", "36", "1502", "2", "0", "1", "1", "21", "6",
"0", "0", "0", "2", "0", "0", "0"), ...44 = c("Galicia",
"Coruña", "3997", "3", "3", "0", "2", "0", "1", "2", "2",
"1", "0", "0", "14", "5", "13", "8", "1", "2", "0", "6",
"0", "0", "0", "1", "0", "1", "0", "0", "0", "0", "3", "4",
"0", "0", "1", "16", "3", "0", "0", "0", "3764", "39", "13",
"59", "17", "9", "0", "0", "0", "0", "3", "0", "1"), ...45 = c(NA,
"Lugo", "1021", "0", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "0", "3", "0", "0", "0", "1", "0", "0", "1", "1", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"1", "1", "0", "0", "0", "0", "55", "920", "3", "23", "3",
"7", "0", "0", "1", "0", "0", "0", "0"), ...46 = c(NA, "Ourense",
"968", "0", "0", "0", "0", "0", "0", "2", "0", "0", "0",
"0", "0", "0", "1", "0", "0", "0", "0", "6", "0", "0", "0",
"0", "0", "3", "0", "0", "0", "1", "0", "1", "1", "0", "2",
"2", "1", "0", "0", "0", "36", "5", "843", "56", "8", "0",
"0", "0", "0", "0", "0", "0", "0"), ...47 = c(NA, "Pontevedra",
"2612", "3", "0", "0", "2", "1", "1", "2", "2", "0", "0",
"1", "3", "3", "20", "8", "1", "0", "0", "0", "1", "2", "0",
"0", "0", "2", "0", "0", "0", "0", "0", "1", "0", "0", "0",
"10", "2", "1", "0", "0", "70", "3", "30", "2431", "9", "1",
"0", "0", "0", "2", "0", "0", "0"), ...48 = c("Madrid", NA,
"30307", "263", "200", "40", "117", "63", "68", "395", "106",
"59", "3", "50", "266", "134", "61", "32", "178", "435",
"60", "102", "27", "108", "247", "65", "97", "49", "27",
"268", "142", "584", "1484", "98", "13", "16", "39", "1056",
"291", "337", "130", "184", "222", "78", "21", "87", "21606",
"300", "52", "3", "9", "16", "17", "1", "1"), ...49 = c("Murcia",
"Murcia", "8096", "66", "4", "0", "18", "0", "8", "12", "1",
"2", "0", "1", "4", "3", "1", "0", "1", "1", "0", "0", "0",
"2", "0", "0", "1", "0", "25", "3", "0", "2", "4", "5", "0",
"2", "0", "226", "1", "8", "0", "0", "2", "2", "0", "3",
"19", "7668", "1", "0", "0", "0", "0", "0", "0"), ...50 = c("Navarra",
"Navarra", "2531", "3", "6", "1", "1", "4", "3", "19", "0",
"45", "0", "18", "10", "5", "0", "5", "10", "0", "5", "1",
"2", "4", "0", "2", "1", "0", "0", "4", "1", "0", "3", "6",
"0", "2", "17", "25", "26", "2", "3", "1", "7", "1", "1",
"1", "14", "5", "2229", "1", "7", "3", "27", "0", "0"), ...51 = c("País Vasco",
"Alava", "1721", "1", "6", "0", "2", "0", "0", "7", "0",
"4", "1", "1", "4", "0", "6", "3", "28", "1", "33", "10",
"3", "6", "0", "0", "2", "5", "0", "0", "0", "0", "1", "2",
"0", "1", "3", "24", "11", "2", "1", "5", "7", "2", "2",
"3", "9", "1", "9", "1426", "12", "14", "63", "0", "0"),
...52 = c(NA, "Guipúzcoa", "2570", "2", "10", "0", "4",
"2", "2", "7", "3", "127", "0", "3", "8", "2", "11", "2",
"20", "2", "12", "11", "14", "25", "2", "7", "7", "3", "0",
"2", "0", "1", "0", "2", "0", "10", "6", "36", "20", "3",
"7", "2", "35", "5", "4", "6", "14", "3", "62", "5", "1942",
"17", "102", "0", "0"), ...53 = c(NA, "Vizcaya", "5097",
"14", "17", "1", "14", "8", "4", "41", "4", "31", "0", "4",
"45", "5", "11", "7", "328", "2", "204", "13", "18", "22",
"2", "4", "6", "16", "1", "0", "0", "4", "4", "10", "3",
"9", "3", "60", "27", "9", "4", "9", "28", "11", "6", "13",
"32", "9", "9", "14", "21", "3873", "117", "0", "0"), ...54 = c("Rioja (La)",
"Rioja (La)", "1591", "1", "4", "0", "1", "1", "0", "1",
"1", "4", "0", "5", "3", "3", "1", "1", "19", "0", "7", "1",
"0", "0", "0", "0", "3", "0", "0", "0", "0", "0", "0", "2",
"0", "0", "5", "18", "5", "1", "0", "1", "3", "0", "0", "0",
"8", "0", "12", "20", "1", "1", "1458", "0", "0"), ...55 = c("Ceuta y Melilla",
"Ceuta", "292", "0", "17", "2", "5", "2", "0", "11", "3",
"0", "0", "0", "1", "0", "0", "1", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0",
"0", "0", "0", "2", "0", "2", "0", "0", "0", "0", "0", "3",
"0", "0", "0", "0", "0", "0", "242", "0"), ...56 = c(NA,
"Melilla", "431", "5", "0", "0", "5", "0", "0", "26", "0",
"0", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "0",
"0", "1", "0", "1", "0", "0", "1", "0", "0", "3", "0", "0",
"0", "0", "0", "3", "1", "0", "0", "2", "0", "0", "0", "3",
"1", "0", "0", "0", "0", "0", "0", "377"), ...57 = c(NA,
NA, 183, 0, 0, 0, 11, 0, 0, 0, 3, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 2, 27, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 134)), row.names = c(NA,
-55L), class = c("tbl_df", "tbl", "data.frame"))
编辑:
预期输出:
将有一个数据 frame/matrix,其中行名是左侧的项目,列名是顶部的项目。
数据看起来像:
# A tibble: 55 × 56
...2 ...3 ...4 ...5 ...6 ...7 ...8 ...9 ...10 ...11 ...12 ...13 ...14 ...15 ...16 ...17 ...18 ...19 ...20 ...21 ...22 ...23 ...24 ...25 ...26 ...27 ...28 ...29 ...30 ...31
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 NA NA Espa… Anda… NA NA NA NA NA NA NA Arag… NA NA Astu… Bale… Cana… NA Cant… Cast… NA NA NA NA NA NA NA NA Cast… NA
2 NA NA NA Alme… Cádiz Córd… Gran… Huel… Jaén Mála… Sevi… Hues… Teru… Zara… NA Bale… Palm… Tene… Cant… Avila Burg… León Pale… Sala… Sego… Soria Vall… Zamo… Alba… Ciud…
3 España NA 2222… 4432 5622 3463 4394 2609 3028 8862 10210 991 524 4652 4709 5047 5047 4585 2742 748 2237 2389 745 1530 526 381 2549 714 1763 2357
4 Andal… Alme… 5200 4303 4 20 118 0 123 24 25 1 1 4 1 9 0 4 4 0 2 1 0 1 1 0 2 2 3 6
5 NA Cádiz 6331 2 5357 25 6 11 11 77 447 1 0 4 0 8 9 0 2 1 7 3 0 6 1 0 3 0 1 3
6 NA Córd… 3285 2 4 3019 6 0 18 36 34 1 0 0 3 8 3 3 0 0 0 0 0 0 0 1 0 0 0 4
7 NA Gran… 4750 49 14 24 4067 1 74 100 32 2 3 3 2 25 3 3 3 0 0 2 0 1 0 0 2 0 6 7
8 NA Huel… 3039 0 6 20 3 2502 0 7 316 0 0 2 0 0 2 1 0 0 0 0 1 1 0 0 4 0 0 1
9 NA Jaén 2969 5 3 17 28 1 2642 21 14 0 0 4 0 8 3 1 1 0 1 0 0 0 0 0 0 0 1 2
10 NA Mála… 9914 9 86 270 100 6 83 8405 197 1 0 12 5 5 5 4 5 3 6 8 4 7 0 0 5 2 0 17
这就是我所希望的:
out <- df %>%
fill(`...2`, .direction = c("down")) %>%
unite(col = "CCAA", c(1, 2)) %>%
mutate(
"CCAA" = gsub("NA_NA|_NA|NA", "", CCAA)
) %>%
t() %>%
as.data.frame() %>%
fill(V1, .direction = "down") %>%
unite(col = "CCAA", c(1, 2)) %>%
mutate(
"CCAA" = gsub("NA_NA|_NA|NA", "", CCAA)
) %>%
t() %>%
as.data.frame() %>%
janitor::row_to_names(1) %>%
rename(CCAA = c(1)) %>%
remove_rownames() %>%
column_to_rownames("CCAA") %>%
tibble()
给出:
# A tibble: 53 × 54
España Andalucía_Almería Andalucía_Cádiz Andalucía_Córdoba Andalucía_Granada Andalucía_Huelva Andalucía_Jaén Andalucía_Málaga Andalucía_Sevilla Aragón_Huesca Aragón_Teruel
<fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct>
1 222295 4432 5622 3463 4394 2609 3028 8862 10210 991 524
2 5200 4303 4 20 118 0 123 24 25 1 1
3 6331 2 5357 25 6 11 11 77 447 1 0
4 3285 2 4 3019 6 0 18 36 34 1 0
5 4750 49 14 24 4067 1 74 100 32 2 3
6 3039 0 6 20 3 2502 0 7 316 0 0
7 2969 5 3 17 28 1 2642 21 14 0 0
8 9914 9 86 270 100 6 83 8405 197 1 0
9 9450 4 82 18 8 56 14 42 8975 0 0
10 1622 0 1 0 0 0 0 0 0 897 5
这可以以更紧凑的方式完成 - 即利用 unite
中的 na.rm
删除 NA
,然后代替双 t
ranspose,在将行转换为列名
order
到 return 的第一个观察结果为 non-NA
library(dplyr)
library(tidyr)
library(tibble)
out <- df %>%
fill(`...2`, .direction = c("down")) %>%
unite(col = "CCAA", c(1, 2), na.rm = TRUE) %>%
mutate(across(-CCAA, ~ .x[order(is.na(.x))])) %>%
janitor::row_to_names(1) %>%
setNames(c("CCAA", .[[1]][-1])) %>%
column_to_rownames("CCAA") %>%
type.convert(as.is = TRUE)
-输出
> head(out)
España Andalucía_Almería Andalucía_Cádiz Andalucía_Córdoba Andalucía_Granada Andalucía_Huelva
222295 Almería 5622 3463 4394 2609
España 5200 4432 4 20 118 0
Andalucía_Almería 6331 4303 5357 25 6 11
Andalucía_Cádiz 3285 2 4 3019 6 0
Andalucía_Córdoba 4750 2 14 24 4067 1
Andalucía_Granada 3039 49 6 20 3 2502
Andalucía_Jaén Andalucía_Málaga Andalucía_Sevilla Aragón_Huesca Aragón_Teruel Aragón_Zaragoza
3028 8862 10210 Huesca 524 4652
España 123 24 25 991 1 4
Andalucía_Almería 11 77 447 1 0 4
Andalucía_Cádiz 18 36 34 1 0 0
Andalucía_Córdoba 74 100 32 1 3 3
Andalucía_Granada 0 7 316 2 0 2
Asturias_Asturias Baleares (Islas)_Baleares Canarias_Palmas_(Las) Canarias_Tenerife
4709 Baleares Palmas (Las) 4585
España 1 5047 5047 4
Andalucía_Almería 0 9 0 0
Andalucía_Cádiz 3 8 9 3
Andalucía_Córdoba 2 8 3 3
Andalucía_Granada 0 25 3 1
Cantabria_Cantabria Castilla y León_Avila Castilla y León_Burgos Castilla y León_León
Cantabria Avila 2237 2389
España 2742 748 2 1
Andalucía_Almería 4 0 7 3
Andalucía_Cádiz 2 1 0 0
Andalucía_Córdoba 0 0 0 2
Andalucía_Granada 3 0 0 0
Castilla y León_Palencia Castilla y León_Salamanca Castilla y León_Segovia
745 1530 526
España 0 1 1
Andalucía_Almería 0 6 1
Andalucía_Cádiz 0 0 0
Andalucía_Córdoba 0 1 0
Andalucía_Granada 1 1 0
Castilla y León_Soria Castilla y León_Valladolid Castilla y León_Zamora
381 2549 714
España 0 2 2
Andalucía_Almería 0 3 0
Andalucía_Cádiz 1 0 0
Andalucía_Córdoba 0 2 0
Andalucía_Granada 0 4 0
Castilla La Mancha_Albacete Castilla La Mancha_Ciudad_Real Castilla La Mancha_Cuenca
Albacete 2357 737
España 1763 6 0
Andalucía_Almería 3 3 0
Andalucía_Cádiz 1 4 0
Andalucía_Córdoba 0 7 0
Andalucía_Granada 6 1 1
Castilla La Mancha_Guadalajara Castilla La Mancha_Toledo Cataluña_Barcelona Cataluña_Girona
1098 2802 Barcelona 3659
España 13 7 25887 2
Andalucía_Almería 4 3 109 2
Andalucía_Cádiz 1 4 38 4
Andalucía_Córdoba 1 5 63 2
Andalucía_Granada 1 0 94 1
Cataluña_Lleida Cataluña_Tarragona Comunidad Valenciana_Alicante Comunidad Valenciana_Castellón
2142 4154 Alicante 3462
España 0 3 11850 2
Andalucía_Almería 2 3 22 0
Andalucía_Cádiz 1 7 2 1
Andalucía_Córdoba 1 7 6 3
Andalucía_Granada 1 0 34 0
Comunidad Valenciana_Valencia Extremadura_Badajoz Extremadura_Cáceres Galicia_Coruña
14330 Badajoz 1669 Coruña
España 21 2415 0 3997
Andalucía_Almería 8 1 4 3
Andalucía_Cádiz 6 13 2 3
Andalucía_Córdoba 6 4 1 0
Andalucía_Granada 1 2 13 2
Galicia_Lugo Galicia_Ourense Galicia_Pontevedra Madrid (Comunidad de)_Madrid
1021 968 2612 30307
España 0 0 3 263
Andalucía_Almería 0 0 0 200
Andalucía_Cádiz 0 0 0 40
Andalucía_Córdoba 0 0 2 117
Andalucía_Granada 0 0 1 63
Murcia (Región de)_Murcia Navarra (Comunidad Foral de)_Navarra País Vasco_Alava
Murcia Navarra Alava
España 8096 2531 1721
Andalucía_Almería 66 3 1
Andalucía_Cádiz 4 6 6
Andalucía_Córdoba 0 1 0
Andalucía_Granada 18 1 2
País Vasco_Guipúzcoa País Vasco_Vizcaya Rioja (La)_Rioja_(La) Ceuta y Melilla_Ceuta
2570 5097 Rioja (La) Ceuta
España 2 14 1591 292
Andalucía_Almería 10 17 1 0
Andalucía_Cádiz 0 1 4 17
Andalucía_Córdoba 4 14 0 2
Andalucía_Granada 2 8 1 5
Ceuta y Melilla_Melilla NA
431 0
España 5 0
Andalucía_Almería 0 0
Andalucía_Cádiz 0 11
Andalucía_Córdoba 5 0
Andalucía_Granada 0 0