library(tidyverse) text <- c("Personnummer: 123456-1234", "Inte personnummer: 12345-123", "Personnummer igen fler på rad 123456-1234 123456-1234", "Lite blandat 123456-1234 lite text 123-1234 mer text 123456-1234", "Två exempel till 1234567-1234 123456-12345", "123456-1234") pattern <- "(\\s|^)(\\d{6}-)\\d{4}(\\s|$)" pattern_fel <- "\\d{6}-\\d{4}" matches <- str_match_all(text, pattern = pattern) #str_match_all(text, pattern = pattern_fel) locations <- str_locate_all(text, pattern = pattern) for(row in 1:length(locations)) { print("Ny rad:") print(text[row]) if(nrow(matches[[row]]) == 0) next for(m in 1:nrow(matches[[row]])) { remove_space <- str_length(matches[[row]][m,4]) str_sub(text[row], start = locations[[row]][m,2]-3-remove_space, end = locations[[row]][m,2]-remove_space) <- "XXXX" } } text str_replace_all(string = text, pattern = pattern, replacement = "\\1\\2XXXX\\3") ymd("år 2025 månad 5 dag 21") library(pxweb) # PXWEB query pxweb_query_list <- list("Region"=c("0114","0115","0117","0120","0123","0125","0126","0127","0128","0136","0138","0139","0140","0160","0162","0163","0180","0181","0182","0183","0184","0186","0187","0188","0191","0192","0305","0319","0330","0331","0360","0380","0381","0382","0428","0461","0480","0481","0482","0483","0484","0486","0488","0509","0512","0513","0560","0561","0562","0563","0580","0581","0582","0583","0584","0586","0604","0617","0642","0643","0662","0665","0680","0682","0683","0684","0685","0686","0687","0760","0761","0763","0764","0765","0767","0780","0781","0821","0834","0840","0860","0861","0862","0880","0881","0882","0883","0884","0885","0980","1060","1080","1081","1082","1083","1214","1230","1231","1233","1256","1257","1260","1261","1262","1263","1264","1265","1266","1267","1270","1272","1273","1275","1276","1277","1278","1280","1281","1282","1283","1284","1285","1286","1287","1290","1291","1292","1293","1315","1380","1381","1382","1383","1384","1401","1402","1407","1415","1419","1421","1427","1430","1435","1438","1439","1440","1441","1442","1443","1444","1445","1446","1447","1452","1460","1461","1462","1463","1465","1466","1470","1471","1472","1473","1480","1481","1482","1484","1485","1486","1487","1488","1489","1490","1491","1492","1493","1494","1495","1496","1497","1498","1499","1715","1730","1737","1760","1761","1762","1763","1764","1765","1766","1780","1781","1782","1783","1784","1785","1814","1860","1861","1862","1863","1864","1880","1881","1882","1883","1884","1885","1904","1907","1960","1961","1962","1980","1981","1982","1983","1984","2021","2023","2026","2029","2031","2034","2039","2061","2062","2080","2081","2082","2083","2084","2085","2101","2104","2121","2132","2161","2180","2181","2182","2183","2184","2260","2262","2280","2281","2282","2283","2284","2303","2305","2309","2313","2321","2326","2361","2380","2401","2403","2404","2409","2417","2418","2421","2422","2425","2460","2462","2463","2480","2481","2482","2505","2506","2510","2513","2514","2518","2521","2523","2560","2580","2581","2582","2583","2584"), "Alder"=c("tot"), "Kon"=c("1","2"), "ContentsCode"=c("BE0101A9"), "Tid"=c("2024")) # Download data px_data <- pxweb_get(url = "https://api.scb.se/OV0104/v1/doris/sv/ssd/BE/BE0101/BE0101A/FolkmangdNov", query = pxweb_query_list) # Convert to data.frame px_data_frame <- as.data.frame(px_data, column.name.type = "text", variable.value.type = "text") ?summarise befolkning <- px_data_frame %>% group_by(region) %>% summarise(befolkning = sum(Antal)) befolkning befolkning2 <- px_data_frame %>% group_by(region) %>% mutate( tot_befolkning = sum(Antal) ) befolkning2 # PXWEB query pxweb_query_list <- list("Region"=c("0114","0115","0117","0120","0123","0125","0126","0127","0128","0136","0138","0139","0140","0160","0162","0163","0180","0181","0182","0183","0184","0186","0187","0188","0191","0192","0305","0319","0330","0331","0360","0380","0381","0382","0428","0461","0480","0481","0482","0483","0484","0486","0488","0509","0512","0513","0560","0561","0562","0563","0580","0581","0582","0583","0584","0586","0604","0617","0642","0643","0662","0665","0680","0682","0683","0684","0685","0686","0687","0760","0761","0763","0764","0765","0767","0780","0781","0821","0834","0840","0860","0861","0862","0880","0881","0882","0883","0884","0885","0980","1060","1080","1081","1082","1083","1214","1230","1231","1233","1256","1257","1260","1261","1262","1263","1264","1265","1266","1267","1270","1272","1273","1275","1276","1277","1278","1280","1281","1282","1283","1284","1285","1286","1287","1290","1291","1292","1293","1315","1380","1381","1382","1383","1384","1401","1402","1407","1415","1419","1421","1427","1430","1435","1438","1439","1440","1441","1442","1443","1444","1445","1446","1447","1452","1460","1461","1462","1463","1465","1466","1470","1471","1472","1473","1480","1481","1482","1484","1485","1486","1487","1488","1489","1490","1491","1492","1493","1494","1495","1496","1497","1498","1499","1715","1730","1737","1760","1761","1762","1763","1764","1765","1766","1780","1781","1782","1783","1784","1785","1814","1860","1861","1862","1863","1864","1880","1881","1882","1883","1884","1885","1904","1907","1960","1961","1962","1980","1981","1982","1983","1984","2021","2023","2026","2029","2031","2034","2039","2061","2062","2080","2081","2082","2083","2084","2085","2101","2104","2121","2132","2161","2180","2181","2182","2183","2184","2260","2262","2280","2281","2282","2283","2284","2303","2305","2309","2313","2321","2326","2361","2380","2401","2403","2404","2409","2417","2418","2421","2422","2425","2460","2462","2463","2480","2481","2482","2505","2506","2510","2513","2514","2518","2521","2523","2560","2580","2581","2582","2583","2584"), "ITtjanster"=c("40"), "ContentsCode"=c("KU0101D1"), "Tid"=c("2012")) # Download data px_data <- pxweb_get(url = "https://api.scb.se/OV0104/v1/doris/sv/ssd/KU/KU0101/KU0101C/BiblDatorTillgangTot", query = pxweb_query_list) # Convert to data.frame px_data_frame <- as.data.frame(px_data, column.name.type = "text", variable.value.type = "text") px_data_frame$Huvudbibliotek[is.na(px_data_frame$Huvudbibliotek)] <- 0 data_bibliotek <- px_data_frame data_bibliotek data_bibliotek %>% group_by(region) %>% summarise( Antal_datorer = Huvudbibliotek ) data_bibliotek$`typ av IT-tjänst` <- NULL data_bibliotek$år <- NULL tot_df <- full_join( data_bibliotek, befolkning ) ?left_join x <- tibble( obs = c(1,3,4,5), var1 = c(1, 3, 4, 5), ) y <- tibble( obs = c(2,3,4,5), var2 = c(2,3,4,5) ) left_join(x,y) right_join(x,y) inner_join(x,y) full_join(x,y)