R および RjpWiki に関する質問コーナー
このコーナーはスパム対策のため閉鎖します。以後は Q&A(中級者コース)をご利用ください
注意:新規記事用の入力欄は以下の目次の直後にあります。各記事への追加コメントの入力欄は、各記事の後にあります。質問が長くなる場合は、まず出だしだけ投稿し、次に編集ボタンでそれを修正、追加するのが便利でしょう。
もし新規に質問をされる場合は、効率的にコメントを得るためにも、善意のコメント者の時間を無駄にしないためにも、以下に特にご注意下さい。R のメイリングリストへの投稿記事のガイド も参考になるでしょう。
アーカイブ:Q&A(旧1)
このコーナーはスパム対策のため閉鎖します。以後は Q&A(中級者コース)をご利用ください
注意:投稿失敗した記事をページ先頭の「新規|編集|差分|添付」の「編集」から消すときは、#article と書いた行まで消さないように注意しましょう。新規の記事投稿ができなくなります。
KOSHI (2006-01-18 (水) 22:58:51)
expression()の形式で入力した数式を,関数として認識したい場合,
例えば> f <- expression(x*y)を(x,y)の関数に直したいとき,
> F <- function(x,y){} > body(F) <- fとやれば
> F <- (x, y) x * yとできます.しかし,これはfで使われる変数が(x,y)と既知であるから出来る操作です.
もし,fでの変数が未知の場合,これを関数認識するにはどうしたらよいでしょうか?つまり,ある関数Gで,> g <- G(expression(x*y*z*u))などとすると,ちゃんとこの4つの変数(x,y,z,u)を使って
> g <- function(x,y,z,u) x*y*z*uとなるような関数を作ることは可能でしょうか.
ちなみにderiv(expr, name, func=T)という関数を使うと,勝手に書いた数式
expr=expression(...)の,変数nameによる1階偏微分を,その文字による関数として認識させているようです.こういうことを自分でもやりたいのですが,derivのソースを見ることができず,結局わかりません.
どなたかお力をお貸しいただけないでしょうか.
> deriv function (expr, ...) UseMethod("deriv") <environment: namespace:stats>なんだぁ?これだけか?と思ったら,
> methods(deriv) [1] deriv.default deriv.formulaと,やってみる。ここに示されるのが,実際に呼び出される候補の関数名。
> stats:::deriv.default function (expr, namevec, function.arg = NULL, tag = ".expr", hessian = FALSE, ...) .Internal(deriv.default(expr, namevec, function.arg, tag, hessian)) <environment: namespace:stats>もう一つ
> stats:::deriv.formula function (expr, namevec, function.arg = NULL, tag = ".expr", hessian = FALSE, ...) { if ((le <- length(expr)) > 1) .Internal(deriv.default(expr[[le]], namevec, function.arg, tag, hessian)) else stop("invalid formula in deriv") } <environment: namespace:stats>これらの関数のどれがどのように使われるかは,help で検索のこと。
> func <- as.function(a <- function(x, y) x+y) > func function(x, y) x+y > func(2,4) [1] 6 > func <- as.function(a <- function(x, y) x*y) > func(3,7) [1] 21一応そういうことで。 -- 2006-01-18 (水) 23:36:17
> G <- function(expr){ F <- function(x,y){ } body(F) <- f return(F) }というGを用意しておけば(x,yの数式なら何でも)関数に出来ますが,このGを用意したところで,ユーザが
> f <- expression(u*v)と書いてしまえば,G(f)は(u,v)の関数に出来ないじゃないですか.ここでG(f)がちゃんと(u,v)の関数にもなって欲しいんです.そういうGをつくりたいんですが・・・こんな感じで意味分かりますでしょうか・・・? -- KOSHI 2006-01-19 (木) 00:01:06
> a <- 3; b <- 5 > f <- alist(x=,y=a,x*y+b) > F <- as.function(f) > F function (x, y = a) x * y + b > F(1) [1] 8
> Func <- function(expr){ df <- deriv(expr, all.vars(expr), func=T) #とりあえず全ての変数で微分しておく。 F <- function(p,q){ #ここを変数2個にしておく。 df(p,q)[1] #derivの[1]には微分しない関数が返されていることを利用。 } return(F) }こうして関数Fを作れば、ユーザが入力する「変数の個数」さえ分っていれば、こっちの好きな変数で関数化することが出来るように思います。
> body(G(n)) <- df(x1,...xn)[1]で完成するのではないでしょうか?
> G <- function(n) { tmpfile <- tempfile() # 一時ファイル名を作る .x <- paste("x", 1:n, ",", sep="") # 引数リスト文字列ベクトル .x[n] <- substr(.x[n], 1, nchar(.x[n])-1) # 最後の引数文字列からカンマを取る sink(tmpfile) cat("function (", .x, ") {}?n") # 関数定義文字列をファイルに出力 sink() # ファイル出力を閉じる .f <- source(tmpfile)[[1]] # ファイルから関数定義を読み込む unlink(tmpfile) # 一時ファイルを削除 return(.f) } > f5 <- G(5) > f5 function ( x1, x2, x3, x4, x5 ) {} > str(f5) function (x1, x2, x3, x4, x5) - attr(*, "source")= chr "function ( x1, x2, x3, x4, x5 ) {}"
S.O (2006-01-13 (金) 03:10:39)
共分散分析のやり方が、いまいち分かりません。
yが目的変数で、x1,x2は連続量で、x3,x4は離散です。
共分散分析は、lmよりaovの方がよいと言われていたので、以下の式で共分散分析ができているのでしょうか?
aov(y~x1+x2+x3+x4)
この場合、普通の4元配置分散分析だと思い、x1,x2を共変量にしないといけないのかと思ったのですが、やり方がよく分かりません。
お手数ですが、どうぞ宜しくお願いいたします。
まさひと (2006-01-11 (水) 20:54:49)
パッケージではMac用のR2WinBUGSが配付されいますが、もともとWinBUGS自体がwindows用なのでうまく呼び出せないと思うのですがいかがでしょうか?ちなみに自分は呼び出しに失敗しました。
Tak (2006-01-10 (火) 18:43:58)
リスク解析の勉強をかねて、Rで@Riskの様なパッケージを自作しようと思っています。@RiskはPalisade社が販売している、リスク解析の為のMS Excelアドインです。モンテカルロ・シュミレーション及び、sensitivity analysisやdecision tree analysisなどができるようです。
http://www.palisade-europe.com/
既存のRのパッケージをできるだけ使って、@Riskの様な包括的なリスク解析パッケージが作れたらいいと思っています。手始めに、既存のRのパッケージやファンクションで、@Risk的なリスク解析に役立ちそうな物があったらおしえていただきたいのです。例えばcor.testのmethod = 'spearman'はそのままnonparametric sensitivity analysisに使えるでしょうし、RExcelはExcelをインターフェイスにするのに役立ちそうです。
他にparametric sensitivity analysis、モンテカルロ法、decision tree analysisなどなどのお勧めパッケージを教えてください。よろしくお願いします。
浩太 (2006-01-05 (木) 13:52:55)
barplotの棒の幅を定めるwidthって何種類ぐらいの幅がありますか?
具体的にどんな種類の幅がありますか?
教えてください
> x <- c(1,4,8,5,2) > barplot(x, width=c(1.2, 3.4, 5.321, 2.345))これにより以下のような図が得られるんだが。。。 それとも,
> barplot(x, width=1) > barplot(x, width=1000)のような描画では差がないように見えるからということかな?
鍋 (2006-01-03 (火) 14:29:13)
> mydata [1] 29 24 20 18 25 22 23 20 20 23 20 30 21 20 19 26 14 23 17 16 13 10 9 10 7 [26] 2 2 4 1 3 > main [1] "Turnover Number" > names.arg [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 26 27 28 29 30 31 32 > xlab [1] "Event Time Number" > ylab [1] "Turnover" > ylim [1] 0 32 > barplot(mydata, main=main, names.arg=names.arg, xlab=xlab, ylab=ylab, ylim=ylim) Error in barplot.default(mydata, main = main, names.arg = names.arg, xlab = xlab, : incorrect number of namesなぜこのようなErrorが表示されるのかわかりません。
incorrectになるのはどういったときなのでしょうか?
以下にエラーbarplot.default(mydata, main = main, names.arg = names.arg, xlab = xlab, : 名前の数が誤りです-- 2006-01-03 (火) 15:41:29
ma (2005-12-29 (木) 18:12:39)
何でも掲示板に出ている「R. Tierney 氏の R バイトコンパイラー(http://www.okada.jp.org/RWiki/index.php#content_1_50)」について質問させて下さい。
”bad function”というエラーが出た場合には具体的にどのような問題が考えられるのでしょうか? 附属のmanには特に関連する記述を見つけられませんでした。
漠然とした質問で申し訳ないのですが、どなたかお教え頂けないでしょうか?
輝 (2005-12-23 (金) 16:33:08)
barplot()で,図を描いており,一つだけ大きい項目があり,
途中のY軸(目盛り)を省きたいのですが,
どのようにすればよいのですか?
YK (2005-12-23 (金) 12:52:29)
RExcelを利用しようとしたのですが,Excel起動時にエラーが発生しました.
エラーメッセージは,以下のとおりです.「実行時エラー 5 プロシージャの呼び出し、または引数が不正です。」そのエラーの発生箇所は,☆の付いている箇所です.
Private Sub RemoveRMenu() On Error Resume Next ☆CommandBars(1).Controls("RExcel").Delete End SubRExcelの実行した環境は以下のとおりです.
Windows XP(SP2) Office Excel 2003 R 2.2.1 RServ 2.0.0(Rserv1.3.5でも同様にエラーが発生しました)RExcelに添付されていたExcel 02 - Macro Demoを実行した際にも同様のエラーが発生しました.
エラー修正,回避などのヒントをご教授願えないでしょうか。
よろしくお願いいたします。
mt (2005-12-21 (水) 11:44:53)
MASS ライブラリ中の lda() 関数を実行した結果から、判別関数を求める方法とそれぞれの変数についての偏F値の求め方がわかりません。
R中ではpredictで判別してくれるのでいいのですが、実際どの変数が分類に寄与していて、どういったルールで判別しているのかがわかりません。
どなたかヒントなどご教授願えないでしょうか。
よろしくお願いいたします。
KJ (2005-12-20 (火) 21:37:18)
Windows 版の R-2.2.0 で eps 形式での出力を行ったファイルを GSview で表示しようとすると、GSview から以下のようなエラーメッセージが吐き出されます。
それ以前のバージョンの R であれば問題なく表示できるのですが…。
原因は何かわかりますでしょうか?GSview 4.7 2005-03-26 Unknown in Comments section at line 2: %%DocumentNeededResources: font Times-Roman Unknown in Comments section at line 3: %%+ font Times-Bold Unknown in Comments section at line 4: %%+ font Times-Italic 中略 End offending input --- file offset = 5390 gsapi_run_string_continue returns -101
x <- seq(-3,3,by=0.01) plot(x,dnorm(x),type="l")として、右クリックでeps保存したファイルです。~ -- KJ
setHook(packageEvent("grDevices", "onLoad"), function(...) grDevices::ps.options(cidfamily=""))等として日本語環境を無効にするか, gsが日本語を扱えるようにきちんと設定して あげてみてください。 -- なかま 2005-12-21 (水) 22:51:02
兄歯 (2005-12-17 (土) 14:17:53)
barplot( )の凡例位置がグラフと重なってしまうので,凡例の位置を変更したのですが。
x <- matrix(rnorm(100), ncol=10) dimnames(x) <- list(1:10, 1:10) barplot(x, beside=TRUE, legend.text=rownames(x), col=1:10)#こういうことでしょうか? barplot(x, beside=TRUE, col=1:10) legend("topright", legend=rownames(x), pch=15, col=1:10)#これは上と同じ legend("topleft", legend=rownames(x), pch=15, col=1:10)#これはどうでしょうか?
内藤 (2005-12-16 (金) 16:57:40)
plot( )で,軸(目盛り)の分割を任意に与えたいのですが,
どのようにすればよいのですか?
hist(rnorm(1000),xaxt="n") axis(1,pos=0,at=c(-1,0.5,2.8),labels=TRUE)などで,遊んでみる。 -- 2005-12-16 (金) 18:00:36
traveller (2005-12-06 (火) 12:42:34)
maptoolsの各図形を参照する方法、どなたか、教えていただけませんか?
> x <- read.shape(system.file("shapes/sids.shp", package = "maptools")[1]) > x$Shapes [[1]] [[1]]$Pstart [1] 0 [[1]]$verts [,1] [,2] [1,] -81.47276 36.23436 [2,] -81.54084 36.27251 [3,] -81.56198 36.27359 [略] [26,] -81.45289 36.23959 [27,] -81.47276 36.23436 [[1]]$shp.type [1] 5 [[1]]$nVerts [1] 27 [[1]]$nParts [1] 1 [[1]]$bbox [1] -81.74107 36.23436 -81.23989 36.58965 [[1]]$shpID [1] 0 attr(,"nVerts") [1] 27 attr(,"nParts") [1] 1 attr(,"shp.type") [1] 5 attr(,"bbox") [1] -81.74107 36.23436 -81.23989 36.58965 [以下略]従って、例えば、1つ目のポリゴンの座標を得る場合には
> x$Shapes[[1]]$vertsでOKです。BBOX座標が必要な場合は、
> x$Shapes[[1]]$bboxですね。
ド級初心者 (2005-11-07 (月) 12:58:10)
Rでベイズクラスタ分析が可能と風の噂で聞きましたが、どのプログラム(zipファイ名)が該当するのでしょうか?また、その使用方が記述されたマニュアルに相当するものは存在するのでしょうか?あれば、サイトアドレスなどご教示下さい。
mori (2005-11-02 (水) 14:08:03)
階層的クラスタリングでできた樹形図(デンドログラム)の結合距離と元データの距離の相関を求めるコーフェン相関係数を求める方法はないでしょうか?または階層的クラスタリングの結果からコーフェン行列を求める方法でもいいのですが。アドバイスお願いします。
たかくら (2005-11-01 (火) 19:00:18)
glmでロジスティック回帰をしていてほとんど同じ(?)計算をしているつもりなのに、residualsの値が大きく変わることに気が付きました。どういう理屈なのでしょうか?
例えば、独立変数xが1,2,3のそれぞれの場合に、50試行のうち成功が5, 20, 45例だったとします。
このとき、試行数や成功例数の与え方としてweightsパラメータで渡すのも、データフレームを直接放り込むのも同じだと思っていました。
resp<-rep(c(1,0),3)
x<-(1,1,2,2,3,3)
weight<-c(5,45,20,30,45,5)
df1<-data.frame(resp,x,weight)
summary(glm(resp~x,weights=weight,family=binomial,data=df1))
x<-(1:3)
y<-c(5,20,45)
df2<-data.frame(x,y)
df2$Ymat<-cbind(df2$y,50-df2$y)
summary(glm(Ymat~x,family=binomial,data=df2))
このどちらの場合もデータとしては同じだと思いますし、推定されるcoefficientも同じようです。
でも、residualsの値やAICなど、モデル全体の適合性に関わるパラメータは全然違います。どうしてなんでしょうか?
> x <- rep(1:3, each=50) > y <- c(rep(1,5), rep(0,45), rep(1,20), rep(0,30), rep(1,45), rep(0,5)) > summary(glm(y ~ x, family=binomial)) Call: glm(formula = y ~ x, family = binomial) Deviance Residuals: Min 1Q Median 3Q Max -2.0559 -0.4062 -0.4062 0.5075 2.2521 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -4.6727 0.7323 -6.381 1.76e-10 *** x 2.2191 0.3366 6.594 4.29e-11 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 207.28 on 149 degrees of freedom Residual deviance: 133.16 on 148 degrees of freedom AIC: 137.16 Number of Fisher Scoring iterations: 4違うか? -- 2005-11-01 (火) 21:12:22
rate <- c(5/50, 20/50, 45/50) total <- c(50,50,50) x <- 1:3 summary(glm(rate~x,weights=total,binomial))とする方が、よりスマートですね。1番目、2番目の方法では、生データを直接使う方法に比べてdfもdevianceも変わりますが、Dalgaardは気にすんなと書いてました。 -- たかくら 2005-11-04 (金) 15:30:04
初心者K (2005-10-28 (金) 12:11:29)
コンピュータでは2進数で数字が表現されているため、
近似的な計算によって、桁落ちや丸め誤差が生じてしまうと聞きましたが、
それはコンピュータでの計算に一般的に言えることなのでしょうか?
(やはりRでもアルゴリズムによって、同様の事が生じてしまうのでしょうか。)
Rではどのような扱いになっているのか教えてください。
tanabe (2005-10-27 (木) 23:30:27)
いつもお世話になっております。
Rでは時系列のARおよびARIMAモデルに関してパラメータの最尤推定を行うことができますが、このアルゴリズムはどのようなものなのでしょうか?正確なのか擬似なのか等知っておられる方がいらっっしゃいましたら教えてください。
また、多変量ARMAモデルのパラメータ最尤推定に対応した機能はありますか?
さらに、欠損値を含むデータに対しても対応する機能があるのか知っておられるようでしたら教えてください。
以上、よろしく御願いします。
kkondo (2005-09-29 (木) 13:33:10)
1変量時系列データを、2階型トレンド成分、ARMA(p,q)成分、白色雑音成分の和へ分解する計算を行ないたいと思っておりますが、R の decompose, stl 関数はこのような分解能力はなさそう(?)です。
最終的には、AIC (もしくはBIC) が最適になるように、成分分解、すなわち、各成分の振幅を与える分散の大きさと、ARMA(p,q) の次数と係数の値を計算したいと思っておりますが、どこかに参考情報はあるでしょうか?
近藤 (2005-09-28 (水) 23:47:54)
expression() で使える文字の一覧というのは存在するのでしょうか?
expression(cdots) は存在するのですが expression(cdot) はないんですね。
BR103 (2005-09-22 (木) 16:28:39)
題名のように、GUIを使わずにインストールはできないのでしょうか?
谷村 (2005-08-19 (金) 16:11:14)
r-helpでスルーされたので、こちらに相談します。KEYCODE (数値型19桁小数0桁) 422010010 42201002101 42201002102 42201002103 42201002104 422010060 422010071 422010072 42201008001 42201008002という内容のtest.dbfとtest.csvを用意します。実物を添付しようとしたのですが、画像ファイルでないということで添付できませんでした。
> library(foreign) > cbind(read.csv("test.csv"),read.dbf("test.dbf")) KEYCODE KEYCODE 1 422010010 422010010 2 42201002101 NA 3 42201002102 NA 4 42201002103 NA 5 42201002104 NA 6 422010060 422010060 7 422010071 422010071 8 422010072 422010072 9 42201008001 NA 10 42201008002 NAとなります。read.shapeで読み込んだ属性値がおかしいので、調べたら read.dbfが期待通りの結果になっていないことに気がつきました。
OpenOffice.org Calcまたはtxt2dbfでtest.dbfを作成して試しました。どちらも同じ結果です。こちらの環境は、R-2.1.1+foreign 0.8-9です。どなたか追試験だけでも、お願いします。
> cbind(read.csv("t1.csv",header=F),read.dbf("t2.dbf")) V1 N1 1 422010010 422010010 2 42201002101 42201002101 3 42201002102 42201002102 4 42201002103 42201002103 5 42201002104 42201002104 6 422010060 422010060 7 422010071 422010071 8 422010072 422010072 9 42201008001 42201008001 10 42201008002 42201008002と問題ないようです。dbfはNeoOffice/J 1.1 RC Patch8で作成しましたが、NeoOfficeの動作はほぼOpenOffice.orgと同様と思います。 -- 岡田 2005-08-19 (金) 16:45:48
> cbind(read.csv("test.csv"),read.dbf("test.dbf")) KEYCODE KEYCODE 1 422010010.00000000 422010010 2 42201002101.00000000 2147483647 3 42201002102.00000000 2147483647 4 42201002103.00000000 2147483647 5 42201002104.00000000 2147483647 6 422010060.00000000 422010060 7 422010071.00000000 422010071 8 422010072.00000000 422010072 9 42201008001.00000000 2147483647 10 42201008002.00000000 2147483647 > x <- cbind(read.csv("test.csv"),read.dbf("test.dbf")) > class(x[2,2]) [1] "integer"岡田さんと同じ環境なんだけど,ファイルは,谷村さんのをダウンロードして使いました。 -- 青木繁伸 2005-08-19 (金) 16:50:04
$ dbf2txt test.dbf #KEYCODE 422010010 42201002101 42201002102 42201002103 42201002104 422010060 422010071 422010072 42201008001 42201008002dbfファイルは正常に見えます。oocalcで開いても正常に開きます。 -- 谷村 2005-08-19 (金) 16:52:55
> write.dbf(read.csv("test.csv"),file="test2.dbf") > cbind(read.csv("test.csv"),read.dbf("test2.dbf")) KEYCODE KEYCODE1 422010010 4220100102 42201002101 422010021013 42201002102 422010021024 42201002103 422010021035 42201002104 422010021046 422010060 4220100607 422010071 4220100718 422010072 4220100729 42201008001 42201008001 42201008002 42201008002
$ > hexdump t2.dbf 0000000 0305 0813 0a00 0000 4100 0f00 0000 0000 0000010 0000 0000 0000 0000 0000 0000 0000 0000 0000020 4e31 0000 0000 0000 0000 004e 0000 0000 0000030 0e02 0000 0000 0000 0000 0000 0000 0000 0000040 0d20 3432 3230 3130 3031 302e 3030 0000 0000050 2034 3232 3031 3030 3231 3031 2e30 3020 0000060 3432 3230 3130 3032 3130 322e 3030 2034 0000070 3232 3031 3030 3231 3033 2e30 3020 3432 0000080 3230 3130 3032 3130 342e 3030 2034 3232 0000090 3031 3030 3630 2e30 3000 0020 3432 3230 00000a0 3130 3037 312e 3030 0000 2034 3232 3031 00000b0 3030 3732 2e30 3000 0020 3432 3230 3130 00000c0 3038 3030 312e 3030 2034 3232 3031 3030 00000d0 3830 3032 2e30 3000 00000d7 $ > hexdump test.dbf 0000000 0369 0813 0a00 0000 4100 1400 0000 0000 0000010 0000 0000 0000 0000 0000 0000 0000 0000 0000020 4b45 5943 4f44 4500 0000 004e 0000 0000 0000030 1300 0000 0000 0000 0000 0000 0000 0000 0000040 0d20 2020 2020 2020 2020 2020 3432 3230 0000050 3130 3031 3020 2020 2020 2020 2020 3432 0000060 3230 3130 3032 3130 3120 2020 2020 2020 0000070 2020 3432 3230 3130 3032 3130 3220 2020 0000080 2020 2020 2020 3432 3230 3130 3032 3130 0000090 3320 2020 2020 2020 2020 3432 3230 3130 00000a0 3032 3130 3420 2020 2020 2020 2020 2020 00000b0 3432 3230 3130 3036 3020 2020 2020 2020 00000c0 2020 2020 3432 3230 3130 3037 3120 2020 00000d0 2020 2020 2020 2020 3432 3230 3130 3037 00000e0 3220 2020 2020 2020 2020 3432 3230 3130 00000f0 3038 3030 3120 2020 2020 2020 2020 3432 0000100 3230 3130 3038 3030 3200 0000109dBase ファイルは比較的おとなしい構造をしている(上記)ので,むかし,C で読み取るプログラムを書いたことがある。 -- 青木繁伸 2005-08-19 (金) 17:21:48
> x <- scan("test.dbf", what="") > x [1] "?003i?b?023" "" "A" "422010010" [5] "42201002101" "42201002102" "42201002103" "42201002104" [9] "422010060" "422010071" "422010072" "42201008001" [13] "42201008002" > as.numeric(x[-(1:3)]) [1] 422010010.00000000 42201002101.00000000 [3] 42201002102.00000000 42201002103.00000000 [5] 42201002104.00000000 422010060.00000000 [7] 422010071.00000000 422010072.00000000 [9] 42201008001.00000000 42201008002.00000000などとねぇ。 -- 青木繁伸 2005-08-19 (金) 17:26:58
--- foreign.orig/src/dbfopen.c 2004-10-27 20:26:43.000000000 +0900 +++ foreign/src/dbfopen.c 2005-08-19 17:42:47.549620408 +0900 @@ -970,7 +970,8 @@ || psDBF->pachFieldType[iField] == 'F' ) /* || psDBF->pachFieldType[iField] == 'D' ) D is Date */ { - if( psDBF->panFieldDecimals[iField] > 0 ) + if( psDBF->panFieldDecimals[iField] > 0 || + psDBF->panFieldSize[iField] > 9 ) return( FTDouble ); else return( FTInteger );
*** foreign/src/Rdbfread.c 2005-04-06 04:35:39.000000000 +0900 --- foreign.new/src/Rdbfread.c 2005-08-19 17:39:25.000000000 +0900 *************** *** 89,95 **** SET_VECTOR_ELT(df, nRvar, allocVector(STRSXP,nrecs)); break; case 2: ! SET_VECTOR_ELT(df, nRvar, allocVector(INTSXP,nrecs)); break; case 3: SET_VECTOR_ELT(df, nRvar, allocVector(REALSXP,nrecs)); --- 89,95 ---- SET_VECTOR_ELT(df, nRvar, allocVector(STRSXP,nrecs)); break; case 2: ! SET_VECTOR_ELT(df, nRvar, allocVector(REALSXP,nrecs)); break; case 3: SET_VECTOR_ELT(df, nRvar, allocVector(REALSXP,nrecs)); *************** *** 120,129 **** case 2: if( DBFIsAttributeNULL( hDBF, iRecord, i )) ! INTEGER(VECTOR_ELT(df, nRvar))[iRecord] = NA_INTEGER; else ! INTEGER(VECTOR_ELT(df, nRvar))[iRecord] = ! DBFReadIntegerAttribute( hDBF, iRecord, i ); nRvar++; break; --- 120,129 ---- case 2: if( DBFIsAttributeNULL( hDBF, iRecord, i )) ! REAL(VECTOR_ELT(df, nRvar))[iRecord] = NA_INTEGER; else ! REAL(VECTOR_ELT(df, nRvar))[iRecord] = ! DBFReadDoubleAttribute( hDBF, iRecord, i ); nRvar++; break;-- 岡田 2005-08-19 (金) 17:49:05
sonkun (2005-08-09 (火) 17:29:30)
Rで需要分析のAlmost Ideal Demand System(A I D S モデル)を試されている方、いませんでしょうか。SASのプログラムhttp://support.sas.com/rnd/app/examples/ets/elasticity/をRに直す形で取り組んでいるのですが、SASでの回帰分析"proc syslin itsur…"のところからが上手く置き換えられません。
どなたか詳しい方いらっしゃいましたらご助言よろしくお願いいたします。
松本 (2005-07-23 (土) 15:19:13)
以前も時系列分析について質問させて頂きました。
GARCHモデルを使って、時系列分析をしようとしているのですが、エラーが出て出来ませんでした。具体的には、fSeriesをダウンロードして、garchFitを使いました。エラーの内容ですが、文字化けしていてわかりませんでした。
Rのバージョンは、2.1.1です。
ただ、garchFit(データ、order=c(0,1))のように、ARCH推定は可能なのです。
私の仕方が悪いのかさえ分かりませんので、教えていただけませんか?
また、ARMAモデルの次数設定の方法を以前教えて頂いたのですが、それを用いてGARCHの次数設定も可能なのでしょうか?
用いた導出法は、for (j in 1:5) for (i in 1:5) { tmp <- arima(data, order=c(j, 0, i)) cat("order1=", j, "order2=", i, "AIC=", tmp$aic, "?n") }
126.01 126.24 126.06 126.23 127.38 127.57 127.73 128.14 128.52 129.58 129.95 130.52 131.27 131.18 130.92 132.08 131.54 131.1というように数値が800個程縦にならんでいます。それ以外には、行番号や、その他の数値は 一切ありません。このtxtファイルのファイル名は、rate6.txtです。
というようにしました。長く時間をかけてすみません。-- [[松本]] &new{2005-07-24 (日) 20:57:58};