#実現したいこと・分からないこと
政府統計の総合窓具日「e-Stat」から学校数のデータを使い(school.csv), 変量として幼稚園, 幼保連携型・認定こども園, 小学校, 中学校, 義務教育学校, 高等学校, 中等教育学校, 盲学校, 聾学校, 養護学校, 特別支援学校, 高等専門学校, 短期大学, 大学, 専修学校, 各種学校があります。また 区分は1948年から2018年までの年のデータがあります。それらを踏まえ, 各変量の最小値・最大値, 分散, 最大値を取るときの年を求めて表にまとめた形で表示させるプログラムを作成しているのですが, 何が原因で正しく表示されないのかが分かりません。
特に, 欠損値の扱いには慣れていないので教えてほしいです。
#####実行環境
R言語(64-bit)
###エラーメッセージ・実行プログラム
$Min V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 "10021" "1943" "20095" "10325" "22" "3575" "1" "70" "101" "0" "1013" "19" "149" "12" "1941" "1183" $Max V1 V2 ・・・ "幼稚園" "幼保連携型・認定こども園" ・・・ V15 V16 "専修学校" "各種学校" $Mean V1 V2 ・・・ V16 NA NA ・・・ NA $Var V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 1.646425e+07 7.482903e+05 2.881855e+06 1.472105e+06 3.380000e+02 1.650591e+05 3.570351e+02 7.715956e+00 7.496786e+01 1.106081e+05 V11 V12 V13 V14 V15 V16 1.826855e+03 5.530617e+01 1.539668e+04 3.929075e+04 2.632083e+05 6.687492e+06 $M 幼稚園 幼保連携型・認定こども園 小学校 中学校 義務教育学校 高等学校 最小値 "10021" "1943" "20095" "10325" "22" "3575" 最大値 "幼稚園" "幼保連携型\n認定こども園" "小学校" "中学校" "義務教育学校" "高等学校" 平均 NA NA NA NA NA NA 分散 "16464253.6664596" "748290.333333333" "2881855.38322981" "1472104.57743271" "338" "165059.086749482" 中等教育学校 盲学校 聾学校 養護学校 特別支援学校 高等専門学校 最小値 "1" "70" "101" "0" "1013" "19" 最大値 "中等教育学校" "盲学校" "聾学校" "養護学校" "特別支援学校" "高等専門学校" 平均 NA NA NA NA NA NA 分散 "357.035087719298" "7.71595558153127" "74.9678550555231" "110608.133255406" "1826.85454545455" "55.3061688311688" 短期大学 大学 専修学校 各種学校 最小値 "149" "12" "1941" "1183" 最大値 "短期大学" "大学" "専修学校" "各種学校" 平均 NA NA NA NA 分散 "15396.6819578578" "39290.750310559" "263208.316492451" "6687491.59337474" 32 件の警告がありました (警告を見るには warnings() を使って下さい) > warnings() 警告メッセージ: 1: In mean.default(newX[, i], ...) : 引数は数値でも論理値でもありません。NA 値を返します 2: In mean.default(newX[, i], ...) : 引数は数値でも論理値でもありません。NA 値を返します ・・・・・・ 16: In mean.default(newX[, i], ...) : 引数は数値でも論理値でもありません。NA 値を返します 17: In FUN(newX[, i], ...) : 強制変換により NA が生成されました ・・・・・・ 32: In FUN(newX[, i], ...) : 強制変換により NA が生成されました
R
1function () 2{ 3 s=read.table("school.csv",sep=",",na.strings="…") 4 Min=apply(s[1:71,1:16],2,min,na.rm=TRUE) 5 Max=apply(s[1:71,1:16],2,max,na.rm=TRUE) 6 Mean=apply(s[1:71,1:16],2,mean,na.rm=TRUE) 7 Var=apply(s[1:71,1:16],2,var,na.rm=TRUE) 8 print(list(Min=Min,Max=Max,Mean=Mean,Var=Var)) 9 M=rbind(Min,Max,Mean,Var) 10 colnames(M)=c("幼稚園","幼保連携型・認定こども園","小学校","中学校","義務教育学校","高等学校","中等教育学校","盲学校","聾学校","養護学校","特別支援学校","高等専門学校","短期大学","大学","専修学校","各種学校") 11 rownames(M)=c("最小値","最大値","平均","分散") 12 return(list(M=M)) 13}
school.csvの内容
|幼稚園|幼保連携型・認定こども園|小学校|中学校|義務教育学校|高等学校|中等教育学校|盲学校|聾学校|養護学校|特別支援学校|高等専門学校|短期大学|大学|専修学校|各種学校|区分|
|:--|:--:|--:|
|1529|… |25237|16285|…|3575|…|74|64|0|…|…|…|12|…|1405|1948|
|1787|…|25638|14200|…|4180|…|74|78|1|…|…|…|178|…|3402|49|
|2100|…|25878|14165|…|4292|…|76|82|3|…|…|149|201|…|4190|50|
|2455|…|26056|13836|…|4477|…|76|84|3|…|…|180|203|…|5144|51|
|2874|…|26377|13748|…|4506|…|77|86|3|…|…|205|220|…|5674|52|
|3490|…|26555|13685|…|4572|…|78|92|5|…|…|228|226|…|6071|53|
|4471|…|26804|13773|…|4606|…|77|96|5|…|…|251|227|…|6741|54|
|5426|…|26880|13767|…|4607|…|77|99|5|…|…|264|228|…|7305|55|
|6141|…|26957|13724|…|4575|…|77|99|10|…|…|268|228|…|7732|56|
|6620|…|26988|13622|…|4577|…|76|101|19|…|…|269|231|…|8075|57|
|6837|…|26964|13392|…|4586|…|76|103|26|…|…|269|234|…|8015|58|
|7030|…|26916|13135|…|4615|…|76|102|38|…|…|272|239|…|8033|59|
|7207|…|26858|12986|…|4598|…|76|103|46|…|…|280|245|…|8089|60|
|7359|…|26741|12849|…|4602|…|76|103|64|…|…|290|250|…|8061|61|
|7520|…|26615|12647|…|4637|…|78|105|86|…|19|305|260|…|7952|62|
|7687|…|26423|12502|…|4811|…|77|105|107|…|34|321|270|…|7940|63|
|8022|…|26210|12310|…|4847|…|77|106|126|…|46|339|291|…|7931|64|
|8551|…|25977|12079|…|4849|…|77|107|151|…|54|369|317|…|7837|65|
|9083|…|25687|11851|…|4845|…|77|108|168|…|54|413|346|…|7897|66|
|9588|…|25487|11684|…|4827|…|75|107|192|…|54|451|369|…|7925|67|
|10021|…|25262|11463|…|4817|…|75|107|206|…|60|468|377|…|7991|68|
|10418|…|25013|11278|…|4817|…|75|107|224|…|60|473|379|…|8024|69|
|10796|…|24790|11040|…|4798|…|75|108|234|…|60|479|382|…|8011|70|
|11180|…|24540|10839|…|4791|…|75|108|255|…|63|486|389|…|8056|71|
|11564|…|24325|10686|…|4810|…|75|108|276|…|63|491|398|…|8045|72|
|12186|…|24592|10836|…|4862|…|76|108|316|…|63|500|405|…|8035|73|
|12686|…|24606|10802|…|4916|…|77|107|368|…|63|505|410|…|7999|74|
|13106|…|24650|10751|…|4946|…|77|107|393|…|65|513|420|…|7956|75|
|13492|…|24717|10719|…|4978|…|77|107|419|…|65|511|423|893|7000|76|
|13855|…|24777|10723|…|5028|…|76|107|452|…|65|515|431|1941|6094|77|
|14229|…|24828|10778|…|5098|…|73|110|502|…|64|519|433|2253|5737|78|
|14627|…|24899|10746|…|5135|…|73|110|654|…|62|518|443|2387|5508|79|
|14893|…|24945|10780|…|5208|…|73|110|677|…|62|517|446|2520|5302|80|
|15059|…|25005|10810|…|5219|…|72|110|695|…|62|523|451|2745|5027|81|
|15152|…|25043|10879|…|5213|…|72|110|700|…|62|526|455|2804|4867|82|
|15189|…|25045|10950|…|5369|…|72|110|713|…|62|532|457|2860|4674|83|
|15211|…|25064|11047|…|5427|…|72|110|720|…|62|536|460|2936|4474|84|
|15220|…|25040|11131|…|5453|…|72|107|733|…|62|543|460|3015|4300|85|
|15189|…|24982|11190|…|5491|…|70|107|741|…|62|548|465|3088|4124|86|
|15156|…|24933|11230|…|5508|…|70|107|747|…|62|561|474|3151|3918|87|
|15115|…|24901|11266|…|5512|…|70|107|754|…|62|571|490|3191|3685|88|
|15080|…|24851|11264|…|5511|…|70|108|760|…|62|584|499|3254|3570|89|
|15076|…|24827|11275|…|5506|…|70|108|769|…|62|593|507|3300|3436|90|
|15041|…|24798|11290|…|5503|…|70|107|783|…|63|592|514|3370|3309|91|
|15006|…|24730|11300|…|5501|…|70|107|786|…|62|591|523|3409|3202|92|
|14958|…|24676|11292|…|5501|…|70|107|787|…|62|595|534|3431|3055|93|
|14901|…|24635|11289|…|5497|…|70|107|791|…|62|593|552|3437|2934|94|
|14856|…|24548|11274|…|5501|…|70|107|790|…|62|596|565|3476|2821|95|
|14790|…|24482|11269|…|5496|…|71|107|797|…|62|598|576|3512|2714|96|
|14690|…|24376|11257|…|5496|…|71|107|800|…|62|595|586|3546|2601|97|
|14603|…|24295|11236|…|5493|…|71|107|805|…|62|588|604|3573|2482|98|
|14527|…|24188|11220|…|5481|1|71|107|810|…|62|585|622|3565|2361|99|
|14451|…|24106|11209|…|5478|4|71|107|814|…|62|572|649|3551|2278|2000|
|14375|…|23964|11191|…|5479|7|71|107|818|…|62|559|669|3495|2164|1|
|14279|…|23808|11159|…|5472|9|71|106|816|…|62|541|686|3467|2069|2|
|14174|…|23633|11134|…|5450|16|71|106|818|…|63|525|702|3439|1955|3|
|14061|…|23420|11102|…|5429|18|71|106|822|…|63|508|709|3444|1878|4|
|13949|…|23123|11035|…|5418|19|71|106|825|…|63|488|726|3439|1830|5|
|13835|…|22878|10992|…|5385|27|71|104|831|…|64|468|744|3441|1729|6|
|13723|…|22693|10955|…|5313|32|…|…|…|1013|64|434|756|3435|1654|7|
|13626|…|22476|10915|…|5243|37|…|…|…|1026|64|417|765|3401|1585|8|
|13516|…|22258|10864|…|5183|42|…|…|…|1030|64|406|773|3348|1533|9|
|13392|…|22000|10815|…|5116|48|…|…|…|1039|58|395|778|3311|1466|10|
|13299|…|21721|10751|…|5060|49|…|…|…|1049|57|387|780|3266|1426|11|
|13170|…|21460|10699|…|5022|49|…|…|…|1059|57|372|783|3249|1392|12|
|13043|…|21131|10628|…|4981|50|…|…|…|1080|57|359|782|3216|1330|13|
|12905|…|20852|10557|…|4963|51|…|…|…|1096|57|352|781|3206|1276|14|
|11674|1943|20601|10484|…|4939|52|…|…|…|1114|57|346|779|3201|1229|15|
|11252|2822|20313|10404|22|4925|52|…|…|…|1125|57|341|777|3183|1200|16|
|10878|3673|20095|10325|48|4907|53|…|…|…|1135|57|337|780|3172|1183|17|
|10474|4466|19892|10270|82|4897|53|…|…|…|1141|57|331|782|3160|1164|18|
##試したこと
欠損値に留意しなければならないため, na.rmを最後においてtrueに設定しました。以前s[!is.na(s)]という書き方を試しましたが, 失敗しました。最後の区分は最小値などの計算対象にならないため, -c[(17)]をsの中に書きましたが, 上手くいきませんでした。
###本来実現したい実行結果
幼稚園 幼保連携型. 認定こども園 小学校 中学校 義務教育学校 最小値 1529.00 1943 19892.00 10270.00 22.00000 最大値 15220.00 4466 26988.00 16285.00 82.00000 平均 11460.92 3226 24507.54 11628.72 50.66667 分散16243163.14 1182238 3149364.54 1477824.35 905.33333 最大値の年85.00 18 57.00 1948.00 18.00000 高等学校 中等教育学校 盲学校 聾学校 養護学校 特別支援学校 最小値 3575.000 1.0000 70.000000 64.00000 0.0000 1013.000 最大値 5512.000 53.0000 78.000000 110.00000 831.0000 1141.000 平均 5038.394 33.4500 73.644068 103.77966 445.0678 1075.583 分散162990.785 359.4184 7.715956 74.96786 110608.1333 2085.174 最大値の年88.000 18.0000 62.000000 84.00000 6.0000 18.000 高等専門学校 短期大学 大学 専修学校 各種学校 最小値 19.00000 149.0000 12.0000 893.000 1164.000 最大値 65.00000 598.0000 783.0000 3573.000 8089.000 平均 59.64912 443.5652 480.3662 3141.419 4606.648 分散 54.44612 15359.3376 40047.7783 256949.868 6763686.517 最大値の年 77.00000 96.0000 12.0000 98.000 60.000
回答2件
あなたの回答
tips
プレビュー