Related
I get 60 Excel files that look like this (the original file has 135 rows):
structure(list(Ce = c(NA, NA, NA, "AC12-PRD-C1", "Camarda", "45431",
"171,0 cm", "754 mmHg", "20W-25W", "RÈsumÈ", NA, "Moyennag",
"Time", "Load", "V'O2", "VO2/kg", "dO2/dW", "V'CO2", "MET", "RER",
"V'E", "BF", "VTex", "PETO2", "PETCO2", "EqCO2", "EqO2", "HR",
"HRR %", "SpO2", "O2/HR", "Ce", NA, NA, NA, "AC12-PRD", NA, "t-ph",
"min", NA, "9.7222222222222224E-3", "1.9444444444444445E-2",
"2.9166666666666664E-2", "3.888888888888889E-2", "4.9999999999999996E-2",
"6.1111111111111116E-2", "7.2222222222222229E-2", "8.2638888888888887E-2",
"9.1666666666666674E-2", "0.10208333333333335", "0.1111111111111111",
"0.12430555555555556", "9.7222222222222224E-3", "2.013888888888889E-2",
"3.0555555555555555E-2", "4.0972222222222222E-2", "5.0694444444444452E-2",
"6.1805555555555558E-2", "7.1527777777777787E-2", "8.3333333333333329E-2",
"9.2361111111111116E-2", "0.10347222222222223", "0.11319444444444444",
"0.12361111111111112", NA, "t-ph", "min", NA, "9.7222222222222224E-3",
"2.013888888888889E-2", "3.0555555555555555E-2", "4.0972222222222222E-2",
"5.0694444444444452E-2", "6.1805555555555558E-2", "7.1527777777777787E-2",
"8.3333333333333329E-2", "9.2361111111111116E-2", "0.10347222222222223",
"0.11319444444444444", "0.12361111111111112", NA, "t-ph", "min",
NA, "1.0416666666666666E-2"), `ntre …` = c("5055", NA, NA, "linear",
NA, "54", NA, NA, "+ 15W", NA, NA, "e temp", NA, NA, NA, "ml",
"ml/m", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
"ntre …", "5055", NA, NA, "-C", NA, "Load", "W", NA, "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "20", "20",
"20", "20", "20", "20", "20", "20", "20", "20", "20", "20", NA,
"Load", "W", NA, "20", "20", "20", "20", "20", "20", "20", "20",
"20", "20", "20", "20", NA, "Load", "W", NA, "25"), `PIC, Insti` = c("rue St Zot",
"tÈl.", "fax.", NA, NA, "masc", "84", "01/0", NA, NA, NA, "orel 15 Se",
"min", "W", "ml/min", "/min/kg", "in/Watt", "ml/min", NA, NA,
"L/min", "1/min", "L", "mmHg", "mmHg", NA, NA, "1/min", "%",
"%", "ml", "PIC, Insti", "rue St Zot", "tÈl.", "fax.", NA, NA,
"HR", "1/min", NA, "73", "71", "74", "72", "81", "77", "78",
"77", "78", "76", "76", "80", "86", "82", "85", "84", "85", "86",
"86", "86", "90", "89", "90", "91", NA, "HR", "1/min", NA, "86",
"82", "85", "84", "85", "86", "86", "86", "90", "89", "90", "91",
NA, "HR", "1/min", NA, "92"), `tut de` = c("ique E", "-514",
"-514", NA, "Ant", "ulin", "kg", "9/2016", NA, "ThÈo", NA, "con",
NA, "163", "2041", NA, NA, NA, NA, NA, "71", "29", NA, NA, NA,
NA, NA, "170", NA, NA, "12.1", "tut de", "ique E", "-514", "-514",
NA, "Rep", "BF", "1/min", NA, "24", "22", "22", "22", "22", "19",
"19", "19", "19", "20", "19", "18", "25", "24", "24", "24", "22",
"23", "21", "21", "22", "19", "23", "24", "RÈfÈr", "BF", "1/min",
NA, "25", "24", "24", "24", "22", "23", "21", "21", "22", "19",
"23", "24", "Exer", "BF", "1/min", NA, "23"), Cardiolo = c("st, Montr",
"3741480", "3742416", NA, "oine", NA, NA, NA, NA, "Repos", NA,
NA, "0.12430555555555556", "0", "380", "4.5", "0.00", "347",
"1.3", "0.91", "14", "18", "0.777", "111.75", "34.10", "37.4",
"34.1", "80", "53", "-4", "4.8", "Cardiolo", "st, Montr", "3741480",
"3742416", NA, "os", "V'E", "L/min", NA, "12", "13", "14", "12",
"9", "12", "12", "12", "13", "14", "13", "14", "15", "17", "18",
"18", "18", "18", "20", "19", "22", "22", "21", "22", "ence",
"V'E", "L/min", NA, "15", "17", "18", "18", "18", "18", "20",
"19", "22", "22", "21", "22", "cice", "V'E", "L/min", NA, "23"
), `gie de M` = c("Èal, HT1", NA, NA, NA, NA, "62 AnnÈ", "Dr Math",
"0.62850694444444444", NA, "AT", "Manuel", NA, "0.33333333333333331",
"40", "823", "9.8", "11.08", "704", "2.8", "0.86", "23", "23",
"0.996", "101.82", "40.90", "30.1", "25.7", "94", "45", "-4",
"8.8", "gie de M", "Èal, HT1", NA, NA, NA, NA, "V'O2", "ml/min",
NA, "365", "389", "417", "310", "281", "364", "354", "382", "401",
"405", "349", "380", "461", "516", "566", "594", "626", "641",
"720", "664", "789", "724", "746", "762", NA, "V'O2", "ml/min",
NA, "461", "516", "566", "594", "626", "641", "720", "664", "789",
"724", "746", "762", NA, "V'O2", "ml/min", NA, "777"), ontrÈal = c("1N6",
NA, NA, NA, NA, "es", "ieu Gayda", "8", NA, "MaxVO2", NA, NA,
"0.54166666666666663", "115", "1703", "20.3", "11.50", "2034",
"5.8", "1.19", "62", "27", "2.316", "112.88", "40.62", "29.5",
"35.2", "139", "18", "-4", "12.2", "ontrÈal", "1N6", NA, NA,
NA, NA, "V'CO2 d", "ml/min", "m", "283", "309", "344", "264",
"210", "296", "283", "304", "325", "339", "299", "347", "370",
"427", "464", "491", "506", "512", "591", "559", "655", "658",
"640", "657", NA, "V'CO2 d", "ml/min", "m", "370", "427", "464",
"491", "506", "512", "591", "559", "655", "658", "640", "657",
NA, "V'CO2 d", "ml/min", "m", "677"), ...8 = c(NA, NA, NA, NA,
NA, NA, NA, "VÈlo", NA, "MaxVO2", "%thÈo.", NA, NA, "71", "83",
NA, NA, NA, NA, NA, "87", "93", NA, NA, NA, NA, NA, "82", NA,
NA, "101", NA, NA, NA, NA, NA, NA, "O2/dW", "ml/", "in/Watt",
"0.00", "0.00", "0.00", "0.00", "0.00", "0.00", "0.00", "0.00",
"0.00", "0.00", "0.00", "0.00", "4.03", "6.76", "9.30", "10.70",
"12.27", "13.04", "16.97", "14.20", "20.42", "17.16", "18.29",
"19.06", NA, "O2/dW", "ml/", "in/Watt", "4.03", "6.76", "9.30",
"10.70", "12.27", "13.04", "16.97", "14.20", "20.42", "17.16",
"18.29", "19.06", NA, "O2/dW", "ml/", "in/Watt", "19.81"), ...9 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "1", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "RER", NA, NA, "0.78", "0.80", "0.83", "0.85",
"0.75", "0.82", "0.80", "0.79", "0.81", "0.84", "0.86", "0.91",
"0.80", "0.83", "0.82", "0.83", "0.81", "0.80", "0.82", "0.84",
"0.83", "0.91", "0.86", "0.86", NA, "RER", NA, NA, "0.80", "0.83",
"0.82", "0.83", "0.81", "0.80", "0.82", "0.84", "0.83", "0.91",
"0.86", "0.86", NA, "RER", NA, NA, "0.87"), ...10 = c(NA, NA,
NA, NA, NA, NA, NA, NA, NA, "Max", "Watts", NA, "0.55208333333333337",
"130", "1583", "18.9", "9.25", "1952", "5.4", "1.23", "64", "30",
"2.114", "14.84", "39.35", "31.5", "38.8", "142", "16", "-4",
"11.2", NA, NA, NA, NA, NA, NA, "EqO2", NA, NA, "27.6", "29.3",
"30.8", "33.9", "25.3", "30.3", "28.9", "29.1", "29.2", "30.5",
"32.9", "34.1", "29.4", "28.8", "28.0", "27.0", "26.3", "25.9",
"25.7", "26.3", "25.3", "28.6", "26.4", "27.3", NA, "EqO2", NA,
NA, "29.4", "28.8", "28.0", "27.0", "26.3", "25.9", "25.7", "26.3",
"25.3", "28.6", "26.4", "27.3", NA, "EqO2", NA, NA, "27.4"),
...11 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "EqCO2", NA, NA,
"35.7", "36.8", "37.3", "39.9", "33.8", "37.2", "36.2", "36.6",
"36.0", "36.5", "38.4", "37.4", "36.6", "34.9", "34.2", "32.7",
"32.5", "32.5", "31.4", "31.2", "30.5", "31.4", "30.8", "31.7",
NA, "EqCO2", NA, NA, "36.6", "34.9", "34.2", "32.7", "32.5",
"32.5", "31.4", "31.2", "30.5", "31.4", "30.8", "31.7", NA,
"EqCO2", NA, NA, "31.5"), ...12 = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "PETCO2", "mmHg", NA, "35.68", "32.78", "35.26", "33.61",
"36.27", "35.53", "35.87", "36.38", "36.51", "36.36", "35.92",
"34.10", "36.80", "36.34", "37.09", "32.65", "38.35", "38.99",
"39.26", "39.91", "39.95", "39.22", "40.18", "39.63", NA,
"PETCO2", "mmHg", NA, "36.80", "36.34", "37.09", "32.65",
"38.35", "38.99", "39.26", "39.91", "39.95", "39.22", "40.18",
"39.63", NA, "PETCO2", "mmHg", NA, "39.66"), ...13 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "VES (ml)", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "86"), ...14 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "VESi (ml/m²)", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "42.6"), ...15 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "FC (bpm)", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "90"), ...16 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "QC (l/min)", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "7.8"), ...17 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "IC (l/min/m²)", NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "3.9"), ...18 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "PAS (mmHg)", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "120"), ...19 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "PAD (mmHg)", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "74"), ...20 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "PAM (mmHg)", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "94"), ...21 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "ICT", NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, "153"), ...22 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "TEV (ms)", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "415.6"), ...23 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "RPD (%)", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "49.3"), ...24 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "WCI (kg.m/m²)", NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "4.7"), ...25 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "RVSi (dyn.s/cm5.m²)", NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "1819"
), ...26 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "RVS (dyn.s/cm5)",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "901"), ...27 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "VTD est (ml)",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "137.5"), ...28 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "FE est (%)",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "62.7"), ...29 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "O2Hb",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "3.8E-3"), ...30 = c(NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "HHb",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "-0.29199999999999998"), ...31 = c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "tHb", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "-0.28820000000000001"), ...32 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "HbDiff", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "0.29580000000000001"
)), row.names = c(NA, -85L), class = c("tbl_df", "tbl", "data.frame"
))
I want to get rid of rows and columns to make my files all looking like this:
structure(list(time = c("00:15", "00:30", "00:46", "01:00", "01:15",
"01:31", "01:46", "01:59", "02:14", "02:30", "02:44", "02:59",
"03:16", "03:29", "03:46", "03:57", "04:14", "04:31", "04:44",
"05:00", "05:16", "05:30", "05:46", "06:01", "06:15", "06:31",
"06:44", "07:00", "07:16", "00:01"), power = c(25, 25, 25, 25,
40, 40, 40, 40, 55, 55, 55, 55, 70, 70, 70, 70, 85, 85, 85, 85,
100, 100, 100, 100, 115, 115, 115, 115, 130, 130), hr = c(92,
90, 86, 87, 93, 91, 95, 94, 98, 100, 101, 100, 108, 108, 110,
113, 115, 118, 120, 122, 122, 126, 130, 130, 131, 136, 137, 139,
142, 144), fr = c(23, 22, 21, 25, 25, 22, 22, 23, 24, 23, 23,
21, 22, 24, 24, 22, 23, 23, 22, 23, 25, 26, 27, 26, 30, 27, 27,
28, 30, 31), VE = c(23, 23, 25, 20, 23, 25, 24, 23, 25, 26, 28,
28, 32, 33, 32, 33, 37, 42, 38, 41, 47, 48, 48, 50, 52, 56, 55,
60, 65, 64), absVO2 = c(0.777, 0.744, 0.761, 0.674, 0.808, 0.868,
0.787, 0.816, 0.921, 0.935, 0.989, 0.96, 1.05, 0.994, 1.121,
1.136, 1.227, 1.193, 1.164, 1.212, 1.333, 1.289, 1.358, 1.403,
1.463, 1.494, 1.441, 1.593, 1.585, 1.515), VCO2 = c(0.677, 0.68,
0.728, 0.583, 0.689, 0.766, 0.714, 0.691, 0.784, 0.825, 0.9,
0.907, 1.008, 0.982, 1.066, 1.132, 1.204, 1.269, 1.241, 1.291,
1.463, 1.488, 1.527, 1.596, 1.633, 1.756, 1.74, 1.912, 1.972,
1.93), PETCO2 = c(39.66, 39.08, 38.76, 39.67, 39, 39.4, 38.71,
41.37, 41.02, 41.19, 41.54, 41.89, 41.12, 41.16, 42.98, 42.8,
42.53, 40.75, 42.64, 41.45, 40.82, 40.23, 41.46, 41.87, 41.37,
40.54, 40.36, 40.64, 39.3, 38.91), VES = c(86, 92.4, 91.4, 84.8,
86, 88.1, 88.9, 86.5, 90.8, 93.2, 94.7, 94.8, 92.6, 93.7, 95.9,
93.1, 101.4, 101.1, 89.4, 97.6, 105.1, 100.3, 97.5, 100.7, 99.8,
108, 105.6, 104.5, 108.3, 106.5), QC = c(7.8, 8.5, 8.3, 7.5,
7.7, 8.1, 8.2, 8.2, 8.6, 9.1, 9.5, 9.5, 9.4, 10, 10.4, 10.3,
11.3, 11.5, 10.5, 11.6, 12.7, 12.3, 12.3, 12.9, 13, 14.2, 14.2,
14.4, 15.1, 15.2), IC = c(3.9, 4.2, 4.1, 3.7, 3.8, 4, 4.1, 4,
4.3, 4.5, 4.7, 4.7, 4.6, 4.9, 5.1, 5.1, 5.6, 5.7, 5.2, 5.8, 6.3,
6.1, 6.1, 6.4, 6.4, 7, 7, 7.1, 7.5, 7.5), WCI = c(4.7, 5.1, 5,
4.5, 4.6, 4.9, 4.9, 4.9, 5.2, 5.5, 5.7, 5.7, 5.6, 6, 6.2, 6.2,
6.8, 6.9, 6.3, 7, 7.6, 7.4, 7.4, 7.7, 7.8, 8.5, 8.5, 8.7, 9.1,
9.1), RVSi = c(1819, 1657, 1709, 1890, 1832, 1745, 1729, 1732,
1641, 1555, 1486, 1480, 1505, 1423, 1358, 1371, 1256, 1224, 1347,
1216, 1112, 1151, 1152, 1096, 1092, 993, 993, 978, 930, 928),
RVS = c(901, 821, 846, 936, 907, 865, 857, 858, 813, 770,
736, 733, 745, 705, 673, 679, 622, 606, 667, 603, 551, 570,
571, 543, 541, 492, 492, 484, 461, 460), VTD = c(137.5, 146.4,
149.6, 138.6, 146.4, 137.2, 142.2, 140.7, 148.5, 146.9, 153.6,
152.3, 144.2, 144, 147.5, 147.3, 146.3, 155.9, 142.4, 151.3,
152.8, 151.4, 154.3, 158.4, 159.5, 157.2, 159.8, 155.4, 150.9,
152.8), FE = c(62.7, 63.1, 61.1, 61.3, 58.8, 64.2, 62.4,
61.5, 61.1, 63.4, 61.6, 62.3, 64.2, 65.1, 65, 63.2, 69.3,
64.8, 62.7, 64.5, 68.8, 66.3, 63.2, 63.6, 62.8, 68.7, 66.2,
67.3, 71.8, 69.7), O2Hb = c("3.8E-3", "0.37130000000000002",
"0.10929999999999999", "0.1457", "0.24440000000000001", "0.39960000000000001",
"0.51039999999999996", "0.28970000000000001", "0.1762", "0.78080000000000005",
"1.0116000000000001", "1.2717000000000001", "1.4643999999999999",
"2.5387", "2.3233000000000001", "2.5627", "2.5230000000000001",
"2.7890000000000001", "2.8567", "3.5232999999999999", "3.7351999999999999",
"4.2393000000000001", "4.3661000000000003", "4.3578000000000001",
"4.2431000000000001", "4.6954000000000002", "4.5110000000000001",
"5.1020000000000003", "4.9044999999999996", "4.8182999999999998"
), HHb = c(-0.292, -0.3309, -0.2811, -0.1445, -0.1007, -0.2498,
-0.4758, -0.2753, -0.0079, -0.2002, -0.4731, -0.3644, -0.5278,
-0.7466, -0.8117, -0.8199, -1.0041, -1.1128, -0.9041, -0.9066,
-1.0106, -0.9902, -0.9717, -0.9746, -1.0317, -1.0096, -0.9691,
-1.0462, -0.8992, -0.8552), tHb = c("-0.28820000000000001",
"4.0399999999999998E-2", "-0.17180000000000001", "1.1999999999999999E-3",
"0.14369999999999999", "0.14979999999999999", "3.4599999999999999E-2",
"1.44E-2", "0.16830000000000001", "0.58050000000000002",
"0.53849999999999998", "0.9073", "0.93659999999999999", "1.7921",
"1.5116000000000001", "1.7427999999999999", "1.5188999999999999",
"1.6761999999999999", "1.9525999999999999", "2.6166999999999998",
"2.7246000000000001", "3.2490000000000001", "3.3944000000000001",
"3.3832", "3.2113999999999998", "3.6859000000000002", "3.5419",
"4.0556999999999999", "4.0053000000000001", "3.9630999999999998"
), HbDiff = c("0.29580000000000001", "0.70209999999999995",
"0.39050000000000001", "0.29020000000000001", "0.34510000000000002",
"0.64939999999999998", "0.98619999999999997", "0.56499999999999995",
"0.18410000000000001", "0.98099999999999998", "1.4846999999999999",
"1.6361000000000001", "1.9922", "3.2852999999999999", "3.1349999999999998",
"3.3826000000000001", "3.5270999999999999", "3.9018000000000002",
"3.7608000000000001", "4.4298999999999999", "4.7458", "5.2294999999999998",
"5.3377999999999997", "5.3323999999999998", "5.2747999999999999",
"5.7050000000000001", "5.4802", "6.1482000000000001", "5.8037000000000001",
"5.6734999999999998"), id = c("AC12-PRD-C1", "AC12-PRD-C1",
"AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1",
"AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1",
"AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1",
"AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1",
"AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1",
"AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1",
"AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1", "AC12-PRD-C1"
), body_mass = c("84", "84", "84", "84", "84", "84", "84",
"84", "84", "84", "84", "84", "84", "84", "84", "84", "84",
"84", "84", "84", "84", "84", "84", "84", "84", "84", "84",
"84", "84", "84"), training = c("linear", "linear", "linear",
"linear", "linear", "linear", "linear", "linear", "linear",
"linear", "linear", "linear", "linear", "linear", "linear",
"linear", "linear", "linear", "linear", "linear", "linear",
"linear", "linear", "linear", "linear", "linear", "linear",
"linear", "linear", "linear")), row.names = c(NA, -30L), class = c("tbl_df",
"tbl", "data.frame"))
To do so, I used this code to combine my data and select the rows and columns I want:
load_files <- function(files){
temp <- read_excel(files) %>%
select(-(c(8:11, 14:15, 18:23))) %>%
mutate(id = pull(.[4,1])) %>% ##ID
mutate(body_mass = pull(.[7,3])) %>% ##body mass
mutate(training = pull(.[4,2])) %>% ##training group
set_names(c("time", "power", "hr", "fr", "VE", "absVO2", "VCO2", "PETCO2", "VES", "QC", "IC", "WCI", "RVSi", "RVS", "VTD", "FE", "O2Hb", "HHb", "tHb", "HbDiff", "id", "body_mass", "training")) %>%
slice(86:which(grepl("ration", VE))-1) %>% ##until recovery period
mutate_at(vars(1:16), as.numeric) %>%
mutate_at(vars(18), as.numeric) %>%
mutate(time = format(as.POSIXct(Sys.Date() + time), "%H:%M", tz="UTC"),
absVO2 = absVO2/1000,
VCO2 = VCO2/1000)
}
df <- map_df(file_list, load_files)
But I get this output:
Error in `set_names()`:
! The size of `nm` (23) must be compatible with the size of `x` (25).
Run `rlang::last_error()` to see where the error occurred.
It was working before, but this I have added column in the Excel files, it does work anymore.
Thank you for your support!
I am an ICU physician conducting research which involves taking lots of patient-related data from the ICU computer system (all ethically approved, etc). As is often the case, getting data out then requires cleaning and wrangling before it can be used properly.
I have obtained a set of data, and have wrangled it as best I can. Of course, my data science skills are pretty rudimentary and despite being an enthusiastic R user, I am at a complete blockage, and am hoping some of you might be able to shed some light on my problem and how to solve it. I absolutely cannot get round this, but suspect it is a commonly encountered issue in time-series work.
At present, my dataset now includes multiple rows for each time point. So, at time X there is an individual row for heart rate, blood pressure, etc. There are 46 observations, and this repeats for every time point (344 in total for this patient). All observations are not recorded at each time point. I have provided a link to screenshots of the way this data is arranged here.
A sample of the data is here, is that helps.
The best progress I've made is with the following nested for-loop structure. It works for the first set of observations. I have tried a strange while-loop arrangement that fell flat on its face.
# First, add a group to the entire table specifying each time point that
# observations were conducted.
Patient_full$Verification_group <- as.numeric(as.factor(Patient_full$Time))
# Get the number of these groups
observation_times <- max(Patient_full$Verification_group)
# Create the bare bones of an overall table. This is the first row of the table.
patient_obs_final <- Patient_full[1,]
# Next I need to create a loop within loop. The master loop will coerce rows
# that have been created by the sub-loop.
for (i in 1 : observation_times) {
# Isolate the overall observation group you are dealing with
veri_group <- filter(Patient_full, Verification_group == i)
# Start by getting some numbers to run the sub-loop
lowest_obs_time_row <- min(veri_group$Row)
highest_obs_time_row <- max(veri_group$Row)
rows_in_obs_time <- (highest_obs_time_row - lowest_obs_time_row)
# We can run the sub-loop now
obs_at_timepoint <- Patient_full[lowest_obs_time_row, ]
for (j in 1 : (rows_in_obs_time - 1)) {
obs_at_timepoint <- coalesce(obs_at_timepoint, Patient_full[j + 1,])
}
patient_obs_final <- rbind(patient_obs_final, obs_at_timepoint)
}
patient_obs_final
As soon as j goes to 2 the thing seems to fall apart.
So, in the end my goal is to have a separate row for each time point, and for that row to have whatever was recorded/observed at that time. I am at a loss, and can't even tell why my solution isn't working. Any advice would be greatly appreciated.
Try this dplyr solution:
library(dplyr)
dat %>%
group_by(Time) %>%
mutate(
Cardiac.Rhythm = if_else(nzchar(Cardiac.Rhythm), Cardiac.Rhythm, NA_character_),
across(-Row, ~ .[order(is.na(.))])
) %>%
ungroup() %>%
filter(rowSums(!is.na(.)) > 2) %>%
as.data.frame()
# Row Time Base.excess..vt. Glucose.ABG Lactate.ABG PaCO2 PaO2 PH..ABG. Potassium.ABG Sodium.ABG Cardiac.Rhythm Arterial.Pressure.Diastolic Arterial.Pressure.Mean Arterial.Pressure.Systolic Heart.Rate
# 1 1 2017-09-04 17:00:00 -11.4 11.8 10.7 4.42 31.5 7.25 3.9 3.9 ST NA NA NA NA
# 2 10 2017-09-04 17:55:00 NA NA NA NA NA NA NA NA <NA> 54 68 92 123
# 3 14 2017-09-04 18:00:00 NA NA NA NA NA NA NA NA ST 60 71 86 123
# 4 23 2017-09-04 19:00:00 -9.3 10.1 9.7 4.22 15.0 7.30 3.9 3.9 ST 58 70 92 122
# 5 36 2017-09-04 20:00:00 -8.4 8.1 7.2 5.07 16.9 7.27 3.9 3.9 ST 62 80 117 NA
(I truncated the columns pasted here ...)
Walk-through:
For some reason, Cardiac.Rhythm has empty strings instead of NA, the first mutate converts empty strings "" to NA so that later filtering works;
.[order(is.na(.))] orders the non-NA data first within each column;
rowSums(.) ensures that we have at least one non-NA datum on a row (the > 2 takes into account that Row and Time are not NA).
Notes:
I assume that data is one "person" per frame; if you have a patient id in the data, make sure to add it within the group_by(.) as well.
Within a particular Time (and Patient_ID, if present), I assume that the order of rows is not important (ergo the per-column reordering of values).
I do not assume that each column can have only one value per Time; while logically it makes sense that this would be the case, there could also be an error in the data-scraping/aggregation before this point, so I intentionally do not assume that x[!is.na(x)] (when grouped by Time) will always return length 1. This will evidence as two (or more) rows in a specific Time.
I thought about using pivot_longer for this, and it still might be possible, but ... you have both numeric and character data here, so it's a little problematic to sort that out well.
Data
dat <- structure(list(Row = 1:47, Time = c("2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:00:00", "2017-09-04 17:55:00", "2017-09-04 17:55:00", "2017-09-04 17:55:00", "2017-09-04 17:55:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 18:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 19:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00", "2017-09-04 20:00:00" ), Base.excess..vt. = c(-11.4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, -9.3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, -8.4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Glucose.ABG = c(NA, 11.8, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 10.1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 8.1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Lactate.ABG = c(NA, NA, 10.7, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 9.7, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 7.2, NA, NA, NA, NA, NA, NA, NA, NA, NA), PaCO2 = c(NA, NA, NA, 4.42, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4.22, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5.07, NA, NA, NA, NA, NA, NA, NA, NA), PaO2 = c(NA, NA, NA, NA, 31.5, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 15, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 16.9, NA, NA, NA, NA, NA, NA, NA), PH..ABG. = c(NA, NA, NA, NA, NA, 7.25, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 7.3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 7.27, NA, NA, NA, NA, NA, NA), Potassium.ABG = c(NA, NA, NA, NA, NA, NA, 3.9, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3.9, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3.9, NA, NA, NA, NA, NA), Sodium.ABG = c(NA, NA, NA, NA, NA, NA, 3.9, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3.9, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3.9, NA, NA, NA, NA, NA), Cardiac.Rhythm = c("", "", "", "", "", "", "", "", "ST", "", "", "", "", "", "", "", "ST", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "ST", "", "", "", "", "", "", "", "", "", "", "", "", "ST"), Arterial.Pressure.Diastolic = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 54L, NA, NA, NA, 60L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 58L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 62L, NA, NA, NA), Arterial.Pressure.Mean = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 68L, NA, NA, NA, 71L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 70L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 80L, NA, NA), Arterial.Pressure.Systolic = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 92L, NA, NA, NA, 86L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 92L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 117L, NA ), Heart.Rate = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 123L, NA, NA, NA, NA, 123L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 122L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Non.Invasive.Arterial.Pressure.Diastolic = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 58L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Non.Invasive.Arterial.Pressure.Mean = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 71L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Non.Invasive.Arterial.Pressure.Systolic = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 108L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Tympanic.Temperature = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 37.6, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Patient.Positioning.ABG = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Central.Venous.Pressure = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Delivered.Percent.O2 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Mean.Airway.Pressure.S = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Minute.Volume.expired..S. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Peak.Inspiratory.Pressure.measured..S = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Positive.End.Expiratory.pressure = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), S.Expired.Tidal.vol...breath. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), S.Tidal.Volume.Inspired = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Servo.i.Modes = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Set.FiO2 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Set.Flow.Trigger.S = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA ), Set.Pause.time.. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Set.PEEP.Servo = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA ), Set.rate..CMV.or.SIMV. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Set.Tidal.Volume..servo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Set.Upper.Pressure.Limit = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Spontaneous.Rate..S = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Cardiac.output..Vigileo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), DO2.Vigileo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), DO2I.Vigileo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Stroke.Volume.Index.Vigileo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Stroke.Volume.Vigileo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Systemic.Vascular.Resistance.Index.Vigileo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Systemic.Vascular.Resistance.Vigileo. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Ionised.Calcium.ABG = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Set.Pressure.Control.level.above.PEEP.S. = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), class = "data.frame", row.names = c(NA, -47L))
Don't do it in a loop. Only one summarise_at is enough !!
library(tidyverse)
Patient_01_sample <- read.csv("E:/R/StackOverflow/Patient_01_sample.xlsx - Sheet 1.csv", row.names=1)
f = function(x) ifelse(length(x[!is.na(x)])==0,NA,x[!is.na(x)][1])
Patient = read_csv("Patient_01_sample.xlsx - Sheet 1.csv")
Patient %>% group_by(Time) %>%
summarise_at(vars(3:45), f)
output
# A tibble: 5 x 44
Time `Glucose ABG` `Lactate ABG` PaCO2 PaO2 `PH (ABG)` `Potassium ABG` `Sodium ABG` `Cardiac Rhythm` `Arterial Pressure Di~
<dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <dbl>
1 2017-09-04 17:00:00 11.8 10.7 4.42 31.5 7.25 3.9 3.9 ST NA
2 2017-09-04 17:55:00 NA NA NA NA NA NA NA NA 54
3 2017-09-04 18:00:00 NA NA NA NA NA NA NA ST 60
4 2017-09-04 19:00:00 10.1 9.7 4.22 15 7.3 3.9 3.9 ST 58
5 2017-09-04 20:00:00 8.1 7.2 5.07 16.9 7.27 3.9 3.9 ST 62
# ... with 34 more variables: Arterial Pressure Mean <dbl>, Arterial Pressure Systolic <dbl>, Heart Rate <dbl>,
# Non Invasive Arterial Pressure Diastolic <dbl>, Non Invasive Arterial Pressure Mean <dbl>,
# Non Invasive Arterial Pressure Systolic <dbl>, Tympanic Temperature <dbl>, Patient Positioning ABG <lgl>, Central Venous Pressure <lgl>,
# Delivered Percent O2 <lgl>, Mean Airway Pressure S <lgl>, Minute Volume expired (S) <lgl>, Peak Inspiratory Pressure measured S <lgl>,
# Positive End Expiratory pressure <lgl>, S Expired Tidal vol. (breath) <lgl>, S Tidal Volume Inspired <lgl>, Servo i Modes <lgl>,
# Set FiO2 <lgl>, Set Flow Trigger S <lgl>, Set Pause time % <lgl>, Set PEEP Servo <lgl>, Set rate (CMV or SIMV) <lgl>,
# Set Tidal Volume (servo) <lgl>, Set Upper Pressure Limit <lgl>, Spontaneous Rate S <lgl>, Cardiac output (Vigileo) <lgl>, ...
As #r2evans pointed out, this cal also be done with dplyr::pivot_wider.
As he suggested, we need a little hack, that is, to transform all columns to character, then back to their original classes after changing back to wide with pivot_wider
library(readxl)
library(dplyr)
df<-read.xlsx("Patient_01_sample.xlsx")
df %>% mutate(`Cardiac Rhythm`=replace(`Cardiac Rhythm`, `Cardiac Rhythm`=='', NA)) %>%
select(-1) %>%
mutate(across(-1, as.character)) %>%
pivot_longer(-1)%>%
group_by(name) %>%
filter(!is.na(value)) %>%
ungroup%>%
pivot_wider(id_cols=Time) %>%
mutate(across(-c(1, `Cardiac Rhythm`), as.numeric))
# A tibble: 5 x 18
Time `Base excess (vt)` `Glucose ABG` `Lactate ABG` PaCO2 PaO2 `PH (ABG)` `Potassium ABG`
<dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2017-09-04 17:00:00 -11.4 11.8 10.7 4.42 31.5 7.25 3.9
2 2017-09-04 17:55:00 NA NA NA NA NA NA NA
3 2017-09-04 18:00:00 NA NA NA NA NA NA NA
4 2017-09-04 19:00:00 -9.3 10.1 9.7 4.22 15 7.3 3.9
5 2017-09-04 20:00:00 -8.4 8.1 7.2 5.07 16.9 7.27 3.9
# … with 10 more variables: Sodium ABG <dbl>, Cardiac Rhythm <chr>, Arterial Pressure Diastolic <dbl>,
# Arterial Pressure Mean <dbl>, Arterial Pressure Systolic <dbl>, Heart Rate <dbl>,
# Non Invasive Arterial Pressure Diastolic <dbl>, Non Invasive Arterial Pressure Mean <dbl>,
# Non Invasive Arterial Pressure Systolic <dbl>, Tympanic Temperature <dbl>
I would like to use Upset plot instead of venn diagram to show overlap between specific groups (20 in total). However, one of the group (number 10) is the most important for me and I would like to present how many unique values is in that specific fraction. I would like to present ~25-30 intersections in total on the graph but uniqueness of group 10 has to be also shown.
I know existence of sets function but I would like to present around 25-30 intersections as mentioned and this 1 group additionally.
Any ideas ?
EDIT:
Added reproducible example:
dput(rep_exp)
structure(list(Gr_4 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 24.4310955935393, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA), Gr_5 = c(NA, NA, NA, 21.8310535918369,
NA, NA, NA, NA, NA, 20.7254228450715, NA, 27.1619253143803, NA,
NA, NA, NA, NA, NA, NA, 26.6027203831498, NA, NA, NA, NA, NA,
NA, 30.8729830402671, NA, NA, NA), Gr_6 = c(28.8390902059829,
24.67734371881, 22.683139406727, 29.1546773298581, NA, NA, 21.9107159172821,
NA, 22.9230495998744, 26.9880437180908, NA, 32.391666051163,
NA, NA, NA, 21.6001415858001, 23.0239282537894, NA, 21.055168555216,
30.7121903523751, NA, NA, NA, NA, 22.0963548474675, NA, 32.513357598066,
NA, NA, 23.7976852708585), Gr_7 = c(21.4265985064224, NA, NA,
23.0695638371137, NA, NA, NA, NA, NA, 20.7903453146324, NA, 28.2499758022535,
NA, NA, NA, NA, NA, NA, NA, 25.9613085520105, NA, NA, NA, NA,
NA, NA, 29.355377815192, NA, NA, 21.1302512982254), Gr_8 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 21.8730880931062, NA,
NA, NA, NA, NA, NA, NA, 22.4189005564519, NA, NA, NA, NA, NA,
NA, 30.2275670312356, NA, NA, NA), Gr_9 = c(22.195894810917,
25.9203441316619, NA, 23.5317193622031, NA, NA, NA, 20.4526193062251,
NA, 22.357699113594, 19.9767319209274, 29.0184743803346, NA,
NA, NA, NA, 22.1010446624755, NA, NA, 26.3118997535445, NA, NA,
NA, NA, NA, NA, 29.9658173049532, NA, NA, 22.7388204380555),
Gr_10 = c(24.9716280984187, 26.6702013159945, NA, 26.0197313721615,
NA, NA, NA, 22.1233522815746, NA, 24.0516716332837, 22.4063679987568,
30.256761573029, NA, NA, NA, NA, 26.4434318913431, NA, NA,
27.9654320211905, NA, NA, NA, NA, NA, NA, 29.8212398361126,
NA, NA, 24.1442935303143), Gr_11 = c(22.9856008507804, 25.1691705265075,
NA, 26.0689081411402, NA, NA, NA, 21.1400234004731, NA, 24.5711480491199,
23.5402595534611, 29.329649538014, NA, NA, NA, NA, 28.6076666902364,
NA, NA, 26.5597151498881, NA, NA, 25.8334491330428, NA, NA,
NA, 29.7854239060885, NA, NA, 21.751849665826), Gr_12 = c(28.2942576160509,
28.4109042369708, NA, 30.2938411874268, 28.1159976488766,
26.6893919055319, NA, 20.2236435193017, NA, 31.1236147481775,
27.1394614209655, 33.7497512742728, NA, NA, NA, 22.1620175455317,
32.740995072413, NA, 23.2685659859292, 31.9204662366898,
NA, NA, 30.7601811119423, NA, NA, 22.8704941623247, 31.3416488641037,
NA, NA, 28.6773773257387), Gr_13 = c(27.9415091276483, 27.0299165363222,
NA, 30.7110417097659, 28.7379570773404, 25.5882365428802,
NA, NA, NA, 32.2667076588073, 27.2933369287433, 34.7079501935325,
NA, 22.8206916170467, NA, NA, 32.5779472688676, NA, NA, 32.6317048040664,
NA, NA, 30.1389490092958, 23.8308408919424, 23.0679896658325,
26.164689687244, 30.2006952484736, NA, 24.447772868487, 29.5606883639626
), Gr_14 = c(27.4616237005853, 26.7750499947566, NA, 30.3932526396929,
31.1062446290124, 27.2595253359549, NA, NA, NA, 33.6656430607522,
27.734214173453, 35.0800848727354, NA, NA, NA, 23.151279208873,
33.2366327906614, NA, NA, 33.4932145181405, 22.9608977649923,
NA, 31.8193222893087, 24.7850652730265, NA, 24.9920915833786,
29.0239557410047, 25.2744788247811, 26.6821750741598, 29.7891764054099
), Gr_15 = c(27.2029382158867, 25.3112934881725, NA, 29.1103329989503,
29.514275096105, NA, NA, NA, NA, 31.6854120776358, 28.5249970429603,
35.9001903675862, 22.4465240056921, NA, NA, NA, 31.8450938083269,
25.5788830788713, NA, 34.7663358707296, 25.6549086895753,
26.2291635318221, 31.9466351025545, 26.715548983008, NA,
25.6752720211283, 28.4457302899793, 27.2647239196348, 25.0412216502086,
31.6489022687779), Gr_16 = c(25.1843096821522, NA, NA, 26.444459119903,
23.8302606418847, NA, NA, NA, NA, 27.987230611469, 27.8591095189136,
32.8816869988268, NA, NA, 24.8165571469754, NA, 28.7689442058935,
25.2395434664377, NA, 32.829999906694, 23.6787411063596,
NA, 27.8325560998723, 25.9582137297807, NA, NA, 25.6769403745901,
25.3048339598422, 23.7070405817542, 29.8423911570548), Gr_17 = c(23.2209751780558,
NA, NA, 24.6434488773652, 22.5225058653221, NA, NA, NA, NA,
27.0216809889885, 26.6607134339159, 31.099676534797, NA,
NA, 26.93077937966, NA, 27.8090060912948, 26.7795654758791,
NA, 32.3731900255852, 24.9494014193233, NA, 24.5609834789349,
26.086325932043, NA, NA, 25.5082418618407, 23.6504233402429,
23.8014399755019, 28.7791270904749), Gr_18 = c(NA, NA, NA,
NA, NA, NA, 26.0401348427439, NA, NA, 24.3341543275568, 24.7556235529872,
30.4889365348298, NA, NA, 26.9888022043666, NA, 25.7387173773674,
27.1316334308385, NA, 31.571451882524, NA, NA, NA, 25.745888266175,
NA, NA, 23.2997781674234, NA, NA, 23.2402643606836), Gr_19 = c(NA,
NA, NA, NA, NA, NA, 24.3940790216008, NA, NA, NA, 21.4222413790374,
25.7991932672173, NA, NA, 25.9372380266141, NA, 22.9217973627502,
20.5334552143032, NA, 28.7776543930148, NA, NA, NA, 23.9298543509444,
NA, NA, 24.3614522942989, NA, NA, NA), Gr_20 = c(NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 25.6961748124338, NA,
NA, NA, NA, NA, NA, NA, 26.4582321196234, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), Gr_21 = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 22.8258042878256, NA, NA, NA, NA, NA,
NA, NA, 25.1317511650203, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA)), row.names = c(NA, 30L), class = "data.frame")
It is a code which has been used to generate a plot:
for (i in 1:nrow(rep_exp)) { rep_exp[i, ][is.na(rep_exp[i, ]) == F] = rownames(rep_exp)[i]}
n_sizescale=nrow(rep_exp)*1.2
p1 <- { upset( fromList(rep_exp),
nsets = ncol(rep_exp), nintersects = 35, order.by = "freq", #degree, freq
empty.intersections = "on", number.angles = 0, mb.ratio = c(0.55, 0.45), point.size = 2.5, line.size = 0.8,
text.scale = c(1.3, 1.3, 1, 1, 1, 1), mainbar.y.label = "Number of groups",
sets.x.label = "Groups",
show.numbers = "yes", keep.order = TRUE,
set_size.show = TRUE,
set_size.scale_max = n_sizescale)
}
If I understood correctly the idea of dots below barplot they indicate how many groups can be found in specific intersections and a single dot gives a number for that specific Gr ? Am I right ?
How to force and algorithm to show couple of "interesting" groups as a single dot (show uniqueness of this group) and other as intersections.
Can you (#krassowski) rewrite a code for the package you mentioned ?
I am struggling with cellwise-calculations in a complex data-set (see below for dput() example).
I need to apply the formula for standardized mean difference (M1-M2/sqrt(s1^2+s2^2) to multiple rows and columns (studies and tests). The M1 & M2 (means) values are in the pr_cognm_ columns and s1 and s2 (standard deviations) in the pr_cognsd_ columns, and they should be calculated dependent on the factors id & tx...3 (treatments).
So e.g. for the pr_cognm_VV2_CRT_error column the id 336 has two rows and, in this case!, the values in the treat1 row need to be subtracted from VGT. But sometimes it is the other way around, e.g. within id 162 dGT needs to be subtracted from treat1 (luckily, this logic will be the same for each specific comparison though). Then, the same thing needs to happen with the standard deviations (i.e. potentiate and addition). Lastly, M and S need to be divided. There are many tests (columns) to run the formula on (e.g.pr_cognm_BVMT_perc_retention, pr_cognm_VV2_CRT_error, etc.) and often NA, since the specific id did not have this test. The data is in the long format and, to make it more complicated, some id have three instead of two rows (where two rows need to be subtracted from one other in a specific direction e.g. task1).
My best idea was to
#make a dataset
a <- readxl::read_excel("C:/.../reprod.xlsx")
b<- a[!grepl("com", a$id),] #already omitted in example dataset
pr_cognm <- dplyr::select(b,contains("pr_cognm"))
pr_cognsd <- dplyr::select(b,contains("pr_cognsd"))
c <- cbind(b$tx...3, b$id ,pr_cognm, pr_cognsd)
c$`b$id` <- as.factor(c$`b$id`)
#turn var's into numerics and factors
#potentiate all standard deviations (s1^2 and s2^2)
c[,3:ncol(c)] <- sapply(c[,3:ncol(c)], as.numeric)
c[,grepl("pr_cognsd", colnames(c))] <- c[,grepl("pr_cognsd", colnames(c))]^2
#then reshape
require(reshape2)
c %>%
dcast(b$id ~ b$tx...3, value.var = c("pr_cognm_VV2_CRT_error"), fill = 0)
b$id BF BL BT dGT H-TT HFL LM-TT treat1 VGT
1 55 0 0 0 0 0 0.00 0.00 0.00 0.00
2 162 0 0 0 0 0 0.00 0.00 0.00 0.00
3 236 0 0 0 0 0 0.00 0.00 0.00 0.00
4 336 0 0 0 0 0 0.00 0.00 8.75 7.58
5 377 0 0 0 0 0 0.00 0.00 0.00 0.00
6 521 0 0 0 0 0 0.00 0.00 0.00 0.00
7 525 0 0 0 0 0 0.00 0.00 0.00 0.00
8 527 0 0 0 0 0 0.00 0.00 0.00 0.00
9 528 0 0 0 0 0 0.00 0.00 0.00 0.00
10 535 0 0 0 0 0 5.65 6.54 0.00 0.00
11 548 0 0 0 0 0 0.00 0.00 0.00 0.00
12 553 0 0 0 0 0 0.00 0.00 0.00 0.00
Now I could define the rules which variables should be added like c$sub <- c$treat1-c$VGT and c$sub <- c$HFL-c$LM-TT, do the addition with the SD's in a similar fashion and finally divide the two variables to find the SMD. BUT, this only works for one test. In this case value.var = c("pr_cognm_VV2_CRT_error"). I would like to get this matrix for every test I have in the dataset via e.g. loop since more than one value.var dont work:
require(reshape2)
c %>%
dcast(b$id ~ b$tx...3, value.var = c("pr_cognm_VV2_CRT_error", "pr_cognm_BNT_perc_retention"), fill = 0)
Error in .subset2(x, i, exact = exact) : subscript out of bounds
In addition: Warning message:
In if (!(value.var %in% names(data))) { :
the condition has length > 1 and only the first element will be used
If there were a way to loop via
c %>%
+ dcast(b$id ~ b$tx...3, value.var = c(names(c[,3:ncol(c)]), fill = 0)
then I could maybe rbind them and do the subtractions into a new variable as described above and after doing the same for the SD's I would finally be able to do the division to get the SMD.
I could not get any solutions to work.
Reprod example (truncated):
a <- structure(list(checked = c("Y", "Y", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA), id = c("55", "55", "162", "162", "236", "236", "336", "336",
"377", "377", "521", "521", "525", "525", "527", "527", "528",
"528", "535", "535", "548", "548", "548", "553", "553"), tx...3 = c("task1",
"VGT", "dGT", "task1", "BT", "H-TT", "task1", "VGT", "BT", "H-TT",
"task1", "VGT", "HFL", "H-TT", "BF", "BT", "HFL", "task1", "HFL",
"LM-TT", "HFL", "BL", "task1", "HFL", "task1"), nta = c(2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
2, 2), id2 = c(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
1, 2, 1, 2, 1, 2, 3, 1, 2), cross = c("N", "N", "N", "N", "N",
"N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N",
"N", "N", "N", "N", "N", "N", "N"), pre_post = c("N", "N", "N",
"N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N",
"N", "N", "N", "N", "N", "N", "N", "N", "N"), case_control = c("N",
"N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N",
"N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"), expsy = c("Y",
"Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y",
"Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"), hosp = c("Out",
"Out", "Out", "Out", "In", "In", "NA", "NA", "In", "In", "NR",
"NR", "NR", "NR", "Mx", "Mx", "NR", "NR", "Mx", "Mx", "Out",
"Out", "Out", "Out", "Out"), tx...11 = c("task1", "VGT", "dGT",
"task1", "BT", "H-TT", "task1", "VGT", "BT", "H-TT", "task1",
"VGT", "HFL", "H-TT", "BF", "BT", "HFL", "task1", "HFL", "LM-TT",
"HFL", "BL", "task1", "HFL", "task1"), vt_p = c("17", "17", "24",
"24", "21", "21", "NR", "NR", "NR", "NR", "NA", "NA", "17", "17",
"24", "24", "17", "17", "17", "17", "17", "17", "17", "17", "17"
), n_se = c("12", "12", "20", "20", "6", "6", "10", "10", "NR",
"NR", "20", "20", "10", "6", "8", "8", "15", "15", "10", "6",
"15", "15", "15", "10", "10"), cogn_name_AMI_K = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), cogn_cite_AMI_K = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), cogn_last_stim_AMI_K = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), n_bcogn_AMI_K = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA), n_pcogn_AMI_K = c(NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA), pr_cognm_AMI_K = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
pr_cognsd_AMI_K = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
), po_cognm_n_AMI_K = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA), po_cognsd_n_AMI_K = c(NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), cogn_name_BVMT_perc_retention = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "brief_visual_memory_test", "brief_visual_memory_test",
"brief_visual_memory_test", NA, NA), cogn_cite_BVMT_perc_retention = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "benedict_1997", "benedict_1997", "benedict_1997",
NA, NA), cogn_last_stim_BVMT_perc_retention = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "NR", "NR", "NR", NA, NA), n_bcogn_BVMT_perc_retention = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 19, 24, 18, NA, NA), n_pcogn_BVMT_perc_retention = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 19, 24, 18, NA, NA), pr_cognm_BVMT_perc_retention = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "91.6", "86.6", "90", NA, NA), pr_cognsd_BVMT_perc_retention = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "17", "36", "13.3", NA, NA), po_cognm_n_BVMT_perc_retention = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "86.7", "82.1", "71.7", NA, NA), po_cognsd_n_BVMT_perc_retention = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "20", "39.3", "24.2", NA, NA), cogn_name_BNT_naming = c(NA,
NA, NA, NA, NA, NA, NA, NA, "boston_naming_task_naming",
"boston_naming_task_naming", NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA), cogn_cite_BNT_naming = c(NA,
NA, NA, NA, NA, NA, NA, NA, "kaplan_1983", "kaplan_1983",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
), cogn_last_stim_BNT_naming = c(NA, NA, NA, NA, NA, NA,
NA, NA, 30, 30, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA), n_bcogn_BNT_naming = c(NA, NA, NA, NA, NA,
NA, NA, NA, 14, 14, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), n_pcogn_BNT_naming = c(NA, NA, NA, NA,
NA, NA, NA, NA, 14, 14, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), pr_cognm_BNT_naming = c(NA, NA,
NA, NA, NA, NA, NA, NA, "19.64", "18.14", NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), pr_cognsd_BNT_naming = c(NA,
NA, NA, NA, NA, NA, NA, NA, "9.15", "5.3", NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), po_cognm_n_BNT_naming = c(NA,
NA, NA, NA, NA, NA, NA, NA, "20.21", "20.71", NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), po_cognsd_n_BNT_naming = c(NA,
NA, NA, NA, NA, NA, NA, NA, "9.38", "6.34", NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), cogn_name_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, "VV2_crt_error", "VV2_crt_error", NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, "VV2_crt_error", "VV2_crt_error",
NA, NA, NA, NA, NA), cogn_cite_VV2_CRT_error = c(NA, NA,
NA, NA, NA, NA, "robbins_1994", "robbins_1994", NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "robbins_1994", "robbins_1994",
NA, NA, NA, NA, NA), cogn_last_stim_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, "NR", "NR", NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, "NR", "NR", NA, NA, NA, NA, NA), n_bcogn_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, 12, 12, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 12, 12, NA, NA, NA, NA, NA), n_pcogn_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, 12, 12, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 12, 12, NA, NA, NA, NA, NA), pr_cognm_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, "8.75", "7.58", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "5.65", "6.54", NA, NA, NA, NA, NA), pr_cognsd_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, "1.13", "2.84", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "1.10", "1.89", NA, NA, NA, NA, NA), po_cognm_n_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, "7.50", "5.33", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "7.50", "2.34", NA, NA, NA, NA, NA), po_cognsd_n_VV2_CRT_error = c(NA,
NA, NA, NA, NA, NA, "2.06", "2.42", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "2.06", "2", NA, NA, NA, NA, NA), cogn_name_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, "VV2_crt_latency", "VV2_crt_latency",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), cogn_cite_VV2_CRT_latency = c(NA, NA, NA, NA, NA,
NA, "robbins_1994", "robbins_1994", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), cogn_last_stim_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, "NR", "NR", NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), n_bcogn_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, 12, 12, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), n_pcogn_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, 12, 12, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), pr_cognm_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, "476.05", "465.65", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), pr_cognsd_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, "35.86", "37.54", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), po_cognm_n_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, "460.66", "433.13", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), po_cognsd_n_VV2_CRT_latency = c(NA,
NA, NA, NA, NA, NA, "34.75", "46.70", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA,
-25L), class = c("tbl_df", "tbl", "data.frame"))
So I would like to create a plot of 6 different boxplots (so all in one graphic). I am however running into some trouble.
First, there are many NA's and they are randomly admist the dataset so I am unsure how to plot all the variables on one plot with this issue.
Secondly, ggplot requires a y variable.... I am fairly new to the tidyverse but am unsure how to create a y variable that will allow for each plot to be represented.
Here is the code I have thus far as well as some sample data, just getting some nonsense...:
library(readr)
library(ggplot2)
library(tidyr)
Box_Whiskers_Plot <- read_delim("C:/Users/johnt/Downloads/Box & Whiskers Plot.txt",
"\t", escape_double = FALSE, trim_ws = TRUE)
box_tidy <- gather(data = Box_Whiskers_Plot,
key = Concern,
value = Value)
ggplot(data = box_tidy, mapping = aes(x = Concern, y = Value)) +
geom_boxplot()
Sample data:
structure(list(`1 concern` = c(NA, NA, NA, NA, "4.7051072361071977E-2",
"0.19811079686050914", "0.15241809445883892", "9.3784616216209704E-2",
NA, NA, "0.12902642667986841", NA, NA, NA, "-2.7995766112836051E-3",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "0.16257072914439274",
NA, NA, NA, NA, NA, NA, NA, "-0.32189822523240785", NA, NA, "8.8779492146409344E-2",
NA, NA, NA, NA, "0.25876167614411516", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, "0.12140341771652063", NA,
NA, NA, NA, NA, NA, NA, "7.8315099203373872E-2", NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "-2.4887790087301243E-2", NA, NA, "0.17817816702345479",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "-0.45715764794257374",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "0.1727380710391988",
NA, NA, NA, NA, NA, "-", NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "0.11810158539718096", NA, NA, NA,
"0.27340288238873622", NA, NA, "0.31222498045287939", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "1 concern", "8.3059150913641758E-2"
), `2 concerns` = c(NA, "0.30750786698302712", NA, NA, NA, NA,
NA, NA, "0.19491094633578943", "0.14347068243793348", NA, NA,
NA, NA, NA, "9.4003202704330935E-2", NA, NA, NA, NA, NA, NA,
"5.8682039323707746E-2", NA, NA, NA, NA, NA, NA, "0.38837474884084",
NA, NA, "9.9772158663856914E-2", NA, NA, NA, NA, "0.15369966808838376",
NA, "-9.7591933707396827E-2", "7.5799891559719335E-2", NA, "0.74069094176638783",
"0.18455079764897997", "0.35878241180217119", NA, NA, "9.7671065222774578E-2",
NA, "-1", "1.9762661406333537E-2", NA, NA, NA, NA, NA, NA, "0.12110279127050561",
"-8.8073972864920469E-2", NA, NA, "-5.3063552654085022E-2", "-0.19524178703281547",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "0.19324044960582598",
NA, NA, NA, NA, NA, "0.19558769095890249", "9.8480653359761305E-2",
"-2.7258845509566809E-2", NA, NA, "4.2377241471322602E-2", NA,
NA, NA, "-0.31089100169922018", NA, NA, "9.4259642624681561E-2",
NA, NA, NA, NA, NA, NA, NA, NA, "2.9465956237787916E-2", "0.36028868638565514",
"0.28696166852692623", "0.16026874768911181", NA, NA, NA, NA,
NA, NA, NA, "0.17495242646710829", NA, NA, NA, "8.0174590835183634E-2",
NA, NA, NA, NA, NA, "0.3741514609038552", NA, NA, NA, NA, NA,
NA, NA, NA, NA, "0.18203421025448296", NA, NA, NA, "0.18032116561517086",
NA, NA, "-0.24673024063961035", "8.3759133449436751E-2", NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "-0.12597421585178167",
NA, NA, NA, "0.19902495793991903", NA, NA, NA, NA, "-9.2408051470944635E-2",
NA, NA, NA, NA, NA, "1.3515493037121162E-2", NA, NA, "-2.2110562098653141E-2",
NA, NA, NA, NA, "3.5029098159769845E-2", NA, NA, NA, NA, NA,
NA, NA, "-0.38542680544884389", "0.2673937214255111", NA, NA,
NA, NA, NA, NA, "0.1514695655588354", NA, "-0.19290183848262321",
"0.19830470195985717", "0.25974088161209186", "0", "0.12635072134014091",
"4.3529572197642308E-2", NA, "-2.811733193779542E-2", "5.2999441490886978E-2",
"-1.5294438792050502E-2", "-0.1092036064257218", NA, NA, NA,
NA, NA, NA, NA, "-8.4682877918448418E-2", NA, NA, NA, NA, NA,
NA, "0.33060935555613358", "-0.26950721703104663", NA, NA, NA,
NA, NA, NA, NA, NA, NA, "2 concerns", "6.5143247152538983E-2"
), `3 concerns` = c(NA, NA, NA, "-6.2005384615384615E-2", NA,
NA, NA, NA, NA, NA, NA, NA, "0.16466373149154445", "0.14529429748819767",
NA, NA, "3.3101080910433733E-3", NA, NA, "-0.14716333286324612",
NA, NA, NA, "0.101855405108354", NA, NA, NA, "1.5624661137794593E-2",
"4.089776650666388E-2", NA, "-", "0.14868399697158718", NA, NA,
"8.4936940656134663E-2", "-7.3275278911856751E-5", NA, NA, "0.16209406140402915",
NA, NA, NA, NA, NA, NA, "7.5733790938149026E-2", "7.7802906849214093E-2",
NA, "0.29092905402715896", NA, NA, NA, "0.2433591777340911",
NA, NA, "0.16878584978409417", "0.23450765393402495", NA, NA,
NA, NA, NA, NA, "1.4972641033242029E-2", NA, NA, "0.15914858376902719",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "0.23167642917280462",
"-0.12014200114033269", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "0.23296355648900113", "9.2737675544091028E-2",
"-1.135676252608786E-2", "-2.5231545331790839E-3", "-1.831276418414618E-2",
NA, "3.700270212564627E-2", NA, NA, NA, NA, NA, NA, NA, "0.12864133565206637",
NA, "0.2713309994071611", NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "0.33081997450170131", NA, NA, NA, NA, NA, NA, "0.10916148370698719",
NA, NA, NA, NA, NA, NA, NA, NA, "-1", "-0.10648202245319915",
NA, NA, NA, NA, NA, NA, "7.6583001375218229E-2", "0.11923826063359644",
"0.1382325704168097", "4.411629139778972E-2", NA, NA, "-2.7571494462436785E-2",
"-8.1186210791162505E-2", "0.36815766123347382", "0.21997253864625099",
"9.5269593575127098E-2", NA, "0.40386694165317971", "0.1317061317077115",
"8.4533840305895946E-2", NA, NA, NA, "7.064976326243011E-2",
"8.2533081202996961E-2", NA, NA, NA, NA, "-6.5935523766861404E-2",
"0.15935278497831473", NA, "0.1159060020401923", NA, NA, "0.11817005685670501",
"6.1029901139001863E-2", "0.12692362698225845", "3.4415424790262605E-2",
NA, NA, "0.23155179134453707", "0.14332216947092591", "7.4795242229677816E-2",
"0", NA, NA, NA, NA, NA, NA, "0.14534924839754271", "0.27815354547396853",
"0.19493428600637031", "0.1283055485269069", NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "-2.3773331360783301E-2",
NA, "0.20660830748524073", NA, "0.23154616465669209", NA, "-0.80937062468163068",
NA, NA, "0.41853447897377194", NA, NA, NA, "9.4089917760579844E-2",
NA, NA, "6.3552512454774224E-3", "-0.43971479670164443", "0.15974143122420936",
"-0.16029537031373786", NA, "3 concerns", "7.198593957320798E-2"
), `4 concerns` = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "6.4352691220779912E-2", NA, NA,
"0.21279729530946834", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "-9.3690492677869663E-2", NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "-7.1185121289991993E-2", NA, NA, "6.569732863463229E-2",
NA, NA, "9.7222332805540157E-2", NA, NA, NA, NA, NA, NA, NA,
"8.5074456366478923E-2", NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "1.7663351832379881E-3", NA, NA, NA, "0.20859715043286409",
"-4.0588246304824382E-2", NA, NA, NA, NA, NA, NA, NA, NA, "3.1799587621662351E-2",
NA, "8.6166092731043253E-2", NA, NA, NA, NA, NA, NA, NA, "4.869038187032948E-2",
"0.18071545075957585", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "4.2986578596766911E-2",
NA, NA, NA, NA, "9.4277092317434086E-3", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, "3.5496813684543493E-2", "-8.1501862554191895E-2",
NA, NA, "9.9940934380241986E-2", NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "4 concerns", "5.1777127158001604E-2"), `5 concerns` = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, "8.9612836579635591E-2", "8.1063923186028175E-2",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "8.4668999169687842E-2", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "6.0739595493825904E-2", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, "9.0340384993987888E-2", NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, "6.1693228854984072E-2", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
"-0.20631919750140182", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, "5 concerns", "3.7399967253821095E-2"), `6 concerns` = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "0.32874505543754307", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "0.15408216010209475", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "-4.8467807432570065E-2",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, "6 concerns", "0.14478646936902259"
)), row.names = c(NA, -238L), class = c("tbl_df", "tbl", "data.frame"
))
ggplot requires your data to be "tidy" (see here for details https://cran.r-project.org/web/packages/tidyr/vignettes/tidy-data.html).
In your case just use the gather function from tidyr package. As your numeric values are actually character and not numeric you also ned to convert them to numeric before plotting them. ggplot will drop NA values (with a warning) so you don't need to worry about them.
So the code is as follows:
library(tidyverse)
Box_Whiskers_Plot <- Box_Whiskers_Plot %>%
gather(key = "concerns", "value") %>%
mutate(value = as.numeric(value))
ggplot(Box_Whiskers_Plot, mapping = aes(x = concerns, y = value)) +
geom_boxplot()
Resulting in: