我有以下问题。我有一个数据框,其中R将所有变量(包括仅具有数字的变量)都视为因素。我想使用sapply更改它。 (即使有更好的方法来进行这种转换-也请告诉我-我想知道sapply()的未来应用在这里出了什么问题。)以下示例有效:
x=1:10
y=10:1
z=letters[1:10]
df=data.frame(x, y, z)
df$x=factor(df$x)
df$y=factor(df$y)
df[,c(1,2)]=sapply(df[,c(1,2)], as.numeric)
class(df$y)
它不适用于实际的数据帧。我只是看不到出了什么问题。查看代码和示例:
代码:
provLevDataRep=transform(provLevDataRep,
province=toString(province),
AC=toString(AC),
provLevDataRep[,c(5:7)]=sapply(provLevDataRep[,c(5:7)], as.numeric)
)
示例:
structure(list(year = 2008L, AC = structure(2L, .Label = c("Andalucía",
"Andalucía ", "Aragón", "Aragón ",
"Asturias, Principado de", "Balears, Illes", "Canarias", "Canarias ",
"Cantabria", "Cantabria ", "Castilla - La Mancha",
"Castilla - La Mancha ", "Castilla y León", "Castilla y León ",
"Cataluña", "Cataluña ", "Ceuta", "Ciudad de Ceuta ",
"Ciudad de Melilla ", "Comunidad de Madrid ",
"Comunidad Foral de Navarra ", "Comunitat Valenciana", "Comunitat Valenciana ",
"Extremadura", "Extremadura ", "Galicia", "Galicia ",
"Illes Balears ", "La Rioja ",
"Madrid, Comunidad de", "Melilla", "Murcia, Región de", "Navarra, Comunidad Foral de",
"País Vasco", "País Vasco ", "Principado de Asturias ",
"Región de Murcia ", "Rioja, La"), class = "factor"),
provCode = 4L, province = structure(4L, .Label = c("A Coruña ",
"Albacete ", "Alicante / Alacant ",
"Almería ", "Araba - Álava ",
"Asturias ", "Ávila ",
"Badajoz ", "Barcelona ",
"Bizkaia ", "Burgos ",
"Cáceres ", "Cádiz ",
"Cantabria ", "Castellón / Castelló ",
"Ceuta ", "Ciudad Real ",
"Córdoba ", "Cuenca ",
"Gipuzkoa ", "Girona ",
"Granada ", "Guadalajara ",
"Huelva ", "Huesca ",
"Illes Balears ", "Jaén ",
"La Rioja ", "Las Palmas ",
"León ", "Lleida ",
"Lugo ", "Madrid ",
"Málaga ", "Melilla ",
"Murcia ", "Navarra ",
"Ourense ", "Palencia ",
"Pontevedra ", "Salamanca ",
"Santa Cruz de Tenerife ", "Segovia ",
"Sevilla ", "Soria ",
"Tarragona ", "Teruel ",
"Toledo ", "Valencia / València ",
"Valladolid", "Valladolid ",
"Zamora ", "Zaragoza "
), class = "factor"), population = structure(153L, .Label = c("1.001.900",
"1.027.914", "1.030.650", "1.042.131", "1.051.229", "1.074.862",
"1.084.341", "1.090.605", "1.098.406", "1.104.479", "1.106.049",
"1.127.196", "1.132.792", "1.141.457", "1.146.458", "1.148.775",
"1.153.724", "1.207.343", "1.236.739", "1.240.284", "1.392.117",
"1.461.979", "1.467.288", "1.517.523", "1.609.557", "1.628.973",
"1.825.264", "1.849.268", "1.855.047", "1.917.097", "1.926.285",
"1.941.480", "1004788", "1061756", "1100027", "1103442",
"1132735", "1151905", "1240175", "138.932", "140365", "144.046",
"145.277", "1466818", "157.570", "159.322", "159303", "1623117",
"164.268", "164.925", "166.035", "167015", "167609", "168.638",
"171.896", "172.510", "173.281", "183.436", "185432", "1868438",
"194.214", "1941355", "197.237", "2.486.483", "2.543.315",
"2.581.147", "203.841", "207449", "211.375", "217.716", "220.107",
"222.909", "224.076", "224909", "228.566", "251.563", "253.686",
"2548898", "255426", "305.459", "308.968", "317.053", "317.352",
"318.391", "319002", "321932", "322.415", "322293", "323.648",
"335.219", "336.926", "339.386", "339.395", "342459", "342748",
"351.326", "353.504", "353.619", "355.176", "364.002", "365.972",
"366900", "374.826", "392.110", "394.580", "396987", "401.682",
"406.267", "409542", "411.531", "414.015", "415.083", "436.029",
"438001", "439.768", "479.395", "484694", "497.387", "497.671",
"499.284", "5.332.513", "5.511.147", "5.523.922", "510.122",
"513.713", "518.081", "519229", "519613", "520.017", "521.661",
"526.288", "529.453", "529157", "533.640", "5523784", "572.824",
"573.282", "582.327", "585.179", "587508", "588656", "592.250",
"6.081.689", "6.436.996", "6.458.684", "604.274", "605.876",
"636.924", "639.621", "640.476", "640790", "6454440", "646.633",
"654.170", "659033", "664.742", "670.761", "678.459", "686.730",
"69.440", "690929", "692.137", "693.371", "694.944", "695.560",
"697.959", "699136", "701.211", "704523", "706.185", "707.263",
"715148", "716.834", "753.046", "753.054", "756156", "757.795",
"76.034", "76.603", "792.182", "795.101", "795.611", "799402",
"80.579", "800962", "805.108", "808.420", "84.263", "84509",
"84963", "85.584", "884.099", "91.006", "917.297", "918.072",
"920088", "92221", "93.593", "932.502", "947.374", "947.639",
"95.258", "950919", "956.006", "960111", "962.472", "973.252",
"983.820"), class = "factor"), totalPotentialVoters = structure(118L, .Label = c("1.000.624",
"1.034.075", "1.068.433", "1.077.550", "1.085.232", "1.087.472",
"1.116.276", "1.163.657", "1.194.069", "1.222.109", "1.253.296",
"1.469.076", "1.506.129", "1.531.806", "1.899.263", "1.921.158",
"1.946.046", "1031733", "1088822", "109.380", "109984", "112.301",
"114.212", "1160216", "120.823", "121440", "123.481", "124.226",
"1251941", "139.218", "139955", "142.578", "143.769", "143.967",
"144427", "147.783", "150.130", "1531161", "157.835", "158886",
"163.500", "164.387", "168.486", "173.320", "173.546", "174072",
"175.713", "176.265", "178.365", "179.355", "179.570", "182.408",
"182321", "1946144", "238.808", "242.800", "247.670", "247.930",
"247507", "250.743", "254.579", "254327", "3.980.181", "300.243",
"300985", "302.302", "303.109", "303.228", "308.612", "309.456",
"309358", "310.083", "310674", "311.095", "311.773", "312.001",
"313.207", "313.516", "313836", "346.534", "348.561", "349.082",
"349.247", "349547", "350.851", "351037", "352.097", "355.289",
"362.679", "364.469", "365513", "386.672", "392.755", "396.117",
"396415", "398.343", "4.028.117", "4.131.319", "4.490.040",
"4.653.779", "4.927.932", "400.552", "401885", "404.764",
"411.081", "4128181", "414.561", "416.491", "417197", "433.056",
"433.204", "433667", "434.477", "440.263", "442375", "447.306",
"447.708", "449.915", "469.594", "474.058", "488.009", "488.211",
"488.388", "489.572", "490192", "491.496", "4913893", "496.483",
"498.203", "498771", "499.909", "50.711", "502.530", "502520",
"511640", "512.366", "514.208", "518.206", "518838", "530.342",
"532.211", "533748", "537.036", "54.690", "543.383", "547.436",
"554.799", "557.468", "558.228", "559247", "562.990", "562799",
"57.795", "57.805", "575.334", "576.501", "57639", "580.706",
"580725", "60.723", "61.587", "61660", "643.313", "651.184",
"651727", "652.086", "706.938", "717.387", "725.943", "730.496",
"730.740", "734.064", "735.201", "735079", "748.579", "748189",
"76.814", "762.221", "763.957", "76986", "77.355", "77.370",
"771381", "772.939", "792.773", "794.522", "830368", "833.373",
"838543", "842.916", "868.560", "890.054", "901.233", "901970",
"948.080", "949.471", "949177", "956.709", "960.033", "969.946",
"981.061", "982.230", "982.837", "985087", "989.045", "993.689",
"993618"), class = "factor"), totalVoters = structure(103L, .Label = c("1.044.851",
"1.072.646", "1.084.712", "1.431.843", "1.439.140", "1.502.871",
"100.106", "100.759", "101.838", "103251", "105955", "107.457",
"108.191", "110.339", "1105238", "115.806", "117.118", "118.018",
"118.856", "119.759", "122.687", "122477", "123297", "126.945",
"132.903", "133.031", "134.004", "134.297", "134.351", "134.588",
"137830", "1478042", "169.331", "172.154", "172.644", "174.913",
"176.707", "179269", "180941", "182.909", "188.562", "189.361",
"195475", "196.083", "196.272", "2.654.927", "2.659.818",
"2.812.062", "200496", "204.615", "207.140", "207084", "209.246",
"211743", "215.046", "217.328", "217.571", "218037", "220.379",
"221.706", "233882", "234.130", "235.515", "238.068", "239.735",
"241.550", "243.639", "249.269", "249.534", "252419", "258.199",
"262151", "266.788", "27.034", "27.483", "270.335", "274.065",
"282.634", "284.076", "28445", "2873383", "295812", "297.906",
"299003", "3.409.331", "3.489.376", "3.550.858", "301.548",
"302.324", "302.605", "308.989", "31.194", "310.377", "312.056",
"312.853", "312315", "312815", "315.504", "319.280", "319.958",
"32.282", "32.295", "327.332", "330.010", "330.773", "331631",
"334.013", "33516", "335561", "336.440", "336.617", "338.720",
"341.348", "341.590", "347.861", "350.959", "353.244", "353975",
"355.289", "356462", "36.605", "3642127", "367.464", "371.866",
"372.732", "375.082", "376484", "377.119", "379.635", "382.981",
"390379", "391.154", "391386", "391433", "395.559", "404576",
"407.573", "414.102", "416.925", "430.258", "445.488", "452.038",
"465.405", "469.437", "472696", "473.847", "477.662", "480.603",
"481.925", "483294", "487.681", "488666", "494.171", "494.904",
"50.337", "508.957", "510.391", "514.034", "514478", "517.144",
"52.252", "521.455", "523637", "52483", "533.089", "537626",
"551.149", "551.762", "568.485", "57.419", "579647", "600.463",
"619.118", "622.252", "625.444", "625.791", "628200", "637.094",
"638.629", "646.432", "647.448", "651.065", "652400", "658824",
"676.837", "682745", "700.268", "719.536", "726.865", "733997",
"741.554", "747.463", "75.932", "752.086", "768.877", "771.912",
"78.929", "783158", "78784", "87.453", "882.601", "89.662",
"898.402", "913165", "93139", "94.269", "940.191"), class = "factor")), .Names = c("year",
"AC", "provCode", "province", "population", "totalPotentialVoters",
"totalVoters"), row.names = c(NA, -1L), class = c("tbl_df", "tbl",
"data.frame"))