Rでts(...)を使用すると数字が変わる理由

このQ&Aのポイント
  • 統計ソフトRでts(...)を使用すると、数字が変わる理由を調査しました。
  • ある官庁からのCSVファイルをDLして数字を読み込ませてts(...)を使うと、数字自体が変わってしまう現象が発生します。
  • 具体的には、mof.csvファイルを読み込み、指定のデータをtsオブジェクトに格納する際、数字が異なる結果が得られます。他のデータでは同じ現象が起きないため、何が原因なのか不明です。
回答を見る
  • ベストアンサー

統計ソフトRでts(...)を使用すると数字が変わる。

統計ソフトRでts(...)を使用すると数字が変わる。 こんにちは。 統計ソフトRの初心者です。 http://www23.atwiki.jp/rfaq/pages/13.html で示すようにある官庁からのCSVファイルをDLして数字を読み込ませてts(...)を使うと数字自体が変わってしまいます。 具体的にはhttp://www.mof.go.jp/bpoffice/bpdata/sbp/s-1/s-1-4.csv にあるファイルをDLして"mof"で保存。 Rでファイルを読み込み以下を実行しています。 (リンク切れの場合にはhttp://www23.atwiki.jp/rfaq/pages/13.htmlをご参照ください。) ----<ここから> mof <- read.table("mof.csv",sep=",",skip=27)#ファイルの読み込み x1 <- mof[,5] x2 <- mof[,13] x3 <- mof[,16] x4 <- mof[,17] t1 <- ts(x1, start=c(1996,1),frequency=12) #「A」 t2 <- ts(x2, start=c(1996,1),frequency=12) t3 <- ts(x3, start=c(1996,1),frequency=12) t4 <- ts(x4, start=c(1996,1),frequency=12) ----<ここまで> 自分の理解では「A」を実施すればx1のデータを1996年1月からの月次データに読み替えるだけだと思っています。 ところがt1を実行するとx1とはまったく異なる数字が出てきます。 余計な部分を削って数字だけのファイルにしても上と同じことが起きます。 他のデータ(たとえば気象庁のHPにある気温などの月次データ)で同じことをしても特にそういったことがないのですがどうしてこのようなことがおきるのでしょうか? 特に急いでいるわけではないのですがご存知の方がいらっしゃいましたらご教授いただければ幸いです。

  • r_faq
  • お礼率82% (37/45)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

x1の内容を表示させると、文字データ(カテゴリー型)になっている ことが分かるかと思います。 対応する元のデータの箇所(他の所も含めて)が、Excelの通貨表示に なっています。 ""と,がないようにすれば、上手くいきます。

r_faq
質問者

お礼

込み合っていてログインできずにお礼が遅くなって申し訳ございませんでした。ありがとうございました。解決しました。

関連するQ&A

  • 統計解析ソフトRのエクセルデータ使用法について

    始めてRを使用しているのですがcsv化したエクセルデータを各列のデータとして読み込む方法がわかりません。 たとえば、 1  2  3  4 0.2  0.3  0.5  0.7 1.3  2.4  3.1  4.7 3.4  4.7  5.4  7.8 というcsvファイルは作成しxに「1」列、yに「3」列を読み込ませたいができないということです。 実際のデータは非常に多いので打ち込みはできません。 初心者なのでコマンドから教えていただけると助かります。

  • 統計ソフト『R』についての質問

    はじめまして。 私は1ヶ月前から研究のため統計ソフト『R』を使ってデータ加工に取り組んでいます。 今あるアンケートデータを加工しようと次のようにプログラミングしました。 x <-read.csv("tv.csv",header=T, sep=",") y <-read.csv("television1.csv",header=T, sep=",") result <-array(,dim=4) for(i in 1:4){ for(j in 1:4){ if (x[i,1]==y[1,j]){ sum(y[,j],na.rm=T) } } } result[i] <-sum(y[,j],na.rm=T) すると以下のようなエラーが・・・ 以下にエラー if (x[i, 1] == y[1, j]) sum(y[, j], na.rm = T) : TRUE/FALSE が必要なところが欠損値です このエラーを解決しようとかなり考えていろいろ試したんですが自分の力では解決できそうにないので質問させていただきます。 よろしくお願いします!!!(>_<)

  • 統計ソフトRについての質問です

    統計ソフトRで、正準判別分析をしています。 lda()を使って判別を行い、次に、predict()で予測を行おうとしたのですが、うまくいきません。 入力式と結果は以下のとおりです。 > predict(lda.exam1,data.frame(x1=400,x2=210, x3=290, x4=100, x5=130, x6=105, x7=220)) 以下にエラー eval(expr, envir, enclos) : オブジェクト 'X1' がありません これは、何が問題でできないのでしょうか? ちなみに、exam1は > exam1 X1 X2 X3 X4 X5 X6 X7 people 1 393 223 283 98 131 104 266 1 2 396 298 272 97 115 102 234 1 3 359 270 282 119 135 115 254 1 4 401 252 306 97 158 93 252 1 5 415 246 307 98 145 85 293 1 6 414 244 292 77 133 102 281 1 7 407 217 306 98 127 98 248 1 8 385 216 282 111 119 106 269 1 9 384 244 307 82 164 106 310 1 10 415 265 276 90 129 77 238 1 このようなデータが80行まであります。 どなたかRに詳しい方、回答をお願いします。

  • 統計ソフト『R』についての質問

    再び質問です!!(>_<) Rで次のように入力するとエラー『以下にエラー Ops.factor(x[i, 1], y[1, j]) : 因子の水準セットが異なっています 』と出てしまいます。。 x <-read.csv("tvshukkou11.csv",header=F, sep=",") y <-read.csv("telebi.csv",header=F, sep=",") result <-array(,dim=24575) for(i in 1:24575){ for(j in 1:12621){ if (x[i,1]==y[1,j]){ sum(y[,j],na.rm=T) result[i] <-sum(y[,j],na.rm=T)-y[1,j] } } } 因子水準とか全然わからないのでさっぱりです。 よろしくおねがいします!!!

  • 統計ソフトRでのファイル読み込み⇒折れ線グラフの作成について

    統計ソフトRでのファイル読み込み⇒折れ線グラフの作成について 統計ソフトRの初心者の者です。 下記にあるようなIMFのデータをダウンロードしてRで折れ線グラフを作成したいと思っていますがうまくいきません。 http://www.imf.org/external/ns/cs.aspx?id=28 データを手打ちして作成するのはなんとかできるのですが(※参照)、データ数(たとえば国や年)が増加すると困難になります。 そこでCSVファイルを直接Rで読み込ませて作成したいと思っています。 作成したい図のイメージとしては(※)で出来上がるようなきわめてシンプルな折れ線グラフです。(MS-EXCELを使うともちろん即座に作成できるのですが練習かねてRを使って作成したいと思っています。) Rで直接ファイルを読み込ませて作成する方法をご存知でしたら教えて下さい。 GDP<-read.csv("ファイル名",sep=",",dec=".",header = T) としてファイル名を読み込ませるくらいの事はわかりますがその先で詰まっている状況です。 R-TIPsとか読んでもうまく解決しないので質問しました。 よろしくお願いいたします。 <※> yr <- c( 2000:2010 ) CN <- c(5.233,1.784,2.925,1.881,3.12,3.019,2.854,2.531,0.414,-2.479,2.125) FR <- c(4.073,1.759,1.065,1.077,2.274,1.941,2.416,2.26,0.323,-2.358,0.903) GR <- c(3.224,1.151,0.006,-0.231,1.176,0.732,3.176,2.516,1.248,-5.297,0.336) pr <- data.frame(c=CN, f=FR, g=GR) matplot(yr, pr, type="b", ylab="GDP", xlab="yr",main="GDP変化率 2000-2010", pch=c(3,2,1), col=c("darkorchid1","cyan3","aquamarine3") ) legend(1,max(pr),legend=colnames(pr), col=c("darkorchid1","cyan3","aquamarine3"), lty=c(1:3),pch=c(3,2,1) ) (ちなみに上記で用いているデータに関しては各3国の2000-2010年のGross domestic product, constant prices Annual percent changeになります)

  • どこの数字を見てDVD-Rを購入すればよいか

    先日DVD-R 16X120Min/4,7GB というのがセールで何も考えず購入したのですが、友達にこのDVD-Rを見せたら、アップグレードか何かしないと私のPCでは使用できないと言われました。 ちなみに私のPCはHPのノートで512MBメモリ、80GB Hard drive、8X DVD±RWと表示してあります。 当方パソコンにうといもので、これらの数字を見てもさっぱり何のことかわかりませんが、16Xは8Xより大きい数字なのでここがポイントなんでしょうか?どうしたら16XのDVD-Rを使えますか? よろしくお願いいたします。 

  • 統計解析ソフトRの入力 head(d1)について

    R超初心者です。大学の授業で出された課題で苦戦しています、どなたか救いの手をお願い致します。。。 平均値の検定t検定のコンソール出力をするために、プリントの指定通りにsetwdを入力、1行目に変数名があるCSV形式のファイルを読んで最初の数行を表示する指示のd1 <-read.table("平均値の検定_データ.csv",header=TRUE, sep=",")と入力し、いざhead(d1)と入力しても、エラー「オブジェクトd1がありません」と出ます。わからなすぎて泣きそうです。 まず、d1 の1は、数字ですか?ローマ字Lの小文字ですか? 以後のプログラムも見事に対応しません。 データは、最初の指定箇所setwdにエクセルに打ち込んだ数値をセットしているだけですが、csv形式のデータも必要なのでしょうか? 本当に初心者すぎて申し訳ない質問なのですが、お答えいただけますと救世主に遭った思いでございます。 どうぞよろしくお願い致します!!!

  • 統計ソフトRの重回帰分析で困ってます。

    自身の前後で地価の説明変数の影響がどう変化したかなという興味の元統計を勉強し始めました、最近。それでRにてlm()で重回帰分析してsummary()をしようとしています。 その途中でけっつまづいたので助けてください! aが被説明変数でb1,b2が説明変数として yy<-read.csv("tes.csv") a<-yy[,1] b1<-yy[,2] b2<-yy[,3] b3<-yy[,4] y<-data.frame(a,b1,b2,b3) y.lm<-lm(a~.,data=y) 『summary(y.lm)最終的にはこれをやりたいのだがlm()のとこで』 以下にエラー lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 因子保管モードを変更するのは不正です 追加情報: 警告メッセージ: In model.response(mf, "numeric") : 因子応答を持つ type="numeric" の使用は無視されるでしょう とかえされるんですがなにがいけないんですかね ? a <- c(148, 160, 159, 153, 151, 140, 158, 137, 149, 160) b1 <- c(41, 49, 45, 43, 42, 29, 49, 31, 47, 47) b2 <- c(41, 159, 153, 151, 140, 31, 47, 47, 47, 47) b3 <- c(41, 159, 153, 151, 140, 31, 47, 47, 47, 47) y.lm<-lm(a~.,data=y) summary(y.lm) これはいけるんですがね。ちなみにcsvのなかは後者のような文字列があるのですが... 助けてください! それ以外にもRで壁にあたった時自分で対処できるようになれそうなサイトorぐぐり方も指南していただけると今後が幸いです。

  • 統計ソフトを作りたいです。

    私はプログラミングはほとんど初心者なのでこのような質問が適当かどうかわかりませんが宜しくお願いします。 競艇の予想と結果の過去のデータを集計したり検証するためのソフトを作りたいと考えています。 現在はExcelで手作業でデータを入力して統計をとったりして検証しているのですが、競艇は1日に1場で12Rあり、全国で20場近く開催されているので年間のデータは膨大でとてもExcelでは対応しきれません。 そこで統計ソフトを作りたいのですが、手始めに予想データと結果データをソフトで読み込んで表やグラフにしたいと思っています。 データは1日分の予想(cvs)ファイルと結果(text)ファイルが1年分あるのですが、このファイルの中からあるデータを読み取って表に並べる、というのは簡単にできるのでしょうか? いちおうVisual Studio 2003 Proを購入しようと思っております。よくC#がお勧めと言われるのでC#にしようと思うのですが、参考になる書籍は「C$でデータベース」というような本でよろしいのでしょうか? よろしくお願いします。

  • 数字 二次関数

    二次関数 y=ーx^2+2x+8のグラフをCとする C 上に点Pをとり、Pのx座標を x=t(1<t<4)とする 点Pを通り x軸に平行な直線を引き、Cとの交点のうちP以外の点をQとすると、 点Qの座標は ( ア t+ イ , ウt^2+ エ t+ オ) となる。 点Qと点Pからx軸に垂線を下ろし、x軸との交点をそれぞれR、Sとすると、 長方形PQRSができる。 この長方形の周の長さは カキ t^2+ ク t+ ケコ で表され、t= サ のとき周の長さは最大となり、最大値は シス である。 ア~スまでに入る数字を途中式と合わせて教えて下さい。