R および RjpWiki に関する質問コーナー
注意:新規記事用の入力欄は以下の目次の直後にあります。各記事への追加コメントの入力欄は、各記事の後にあります。質問が長くなる場合は、まず出だしだけ投稿し、次に編集ボタンでそれを修正、追加するのが便利でしょう。
もし新規に質問をされる場合は、効率的にコメントを得るためにも、善意のコメント者の時間を無駄にしないためにも、以下に特にご注意下さい。R のメイリングリストへの投稿記事のガイド も参考になるでしょう。
(2004-05-13 (木) 22:15:48)
ここにあるような群散布図(Group Scatter)を作成するパッケージはありませんか。
> library(ade4) > data(lascaux) > scatter(dudi.acm(lascaux$ornem, sca = FALSE), csub = 3)
例えばこんな関数がありました.
> x <- c(0.5,0.2,-0.5,-0.2) ; y <- c(0.2,0.5,-0.2,-0.5) > eti <- c("toto", "kjbk", "gdgiglgl", "sdfg") > plot(x, y, xlim = c(-1,1), ylim = c(-1,1)) > scatterutil.eti.circ(x, y, eti, 2.5) > abline(0, 1, lty = 2) ; abline(0, -1, lty = 2) > x <- c(0.5,0.2,-0.5,-0.2) ; y <- c(0.2,0.5,-0.2,-0.5) > eti <- c("toto", "kjbk", "gdgiglgl", "sdfg") > plot(x, y, xlim = c(-1,1), ylim = c(-1,1)) > scatterutil.eti(x, y, eti, 1.5) > plot(runif(10,-3,5), runif(10,-1,1), asp = 1) > scatterutil.grid(2) > abline(h = 0, v = 0, lwd = 3) > x <- runif(10,0,1) ; y <- rnorm(10) ; z <- rep(1,10) > plot(x,y) ; scatterutil.star(x, y, z, 0.5) > plot(x,y) ; scatterutil.star(x, y, z, 1) > x <- c(runif(10,0,0.5), runif(10,0.5,1)) > y <- runif(20) > plot(x, y, asp = 1) # asp=1 is essential to have perpendicular axes > scatterutil.ellipse(x, y, rep(c(1,0), c(10,10)), cell = 1.5, ax = TRUE) > scatterutil.ellipse(x, y, rep(c(0,1), c(10,10)), cell = 1.5, ax = TRUE) > x <- c(runif(100,0,0.75), runif(100,0.25,1)) > y <- c(runif(100,0,0.75), runif(100,0.25,1)) > z <- factor(rep(c(1,2), c(100,100))) > plot(x, y, pch = rep(c(1,20), c(100,100))) > scatterutil.chull(x, y, z, opt = c(0.25,0.50,0.75,1)) > par(mfrow = c(1,1))
関数が多数あるので全部は調べ切れませんでした.すみません. -- 舟尾 2004-05-13 (木) 22:52:40
# テストデータの作成 mean <- c(3,5,6,8,7) sd <-c(0.3, 0.4, 0.5, 0.2, 0.4) x <- rep(1:5, each=20) # 5群(20ケースずつ)のデータ,平均値・標準偏差は上述の通り y <- NULL for (i in 1:5) y <- as.integer(100*c(y, rnorm(20, mean=mean[i], sd=sd[i])))/100 #accu 測定値(縦軸)の精度(階級幅) #stp 横軸方向のずらし量 # 以上二つは,試行錯誤で決定(^_^;) graph <- function(x, y, accu, stp) { y <- round(y/accu)*accu x1 <- unique(x) for (i in 1:length(x1)) { freq <- table(y[x==x1[i]]) for (j in 1:length(freq)) { if (freq[j] >= 2) { for (k in 1:length(y)) { if (abs(y[k]-as.numeric(names(freq)[j])) < 1e-10 && abs(x[k]-x1[i]) < 1e-10) { x[k] <- x[k]+(freq[j] <- freq[j]-1)*stp } } } } } plot(x, y) } graph(x, y, 0.2, 0.05)
(2004-05-06 (木) 17:15:50)
巡回セールスマン問題用の関数がRのあるパッケージにあったようですが失念してしまいました。どなたか、ご存知ありませんか?
さち (2004-05-03 (月) 00:00:58)
matplotで軸の正の方向を左向きにしたいと思い、
matplot(c(30,-80),c(50,-50))
のようにしたのですが、グラフにしてみると軸は正の方向が右側のままでした。
matplotで軸の方向を変える方法を知っている方がいたらアドバイスをお願いします。
sines <- outer(1:20, 1:4, function(x, y) sin(x / 20 * pi * y)) matplot(sines, xlim=c(20,1), type="o", pch=1:4, col = rainbow(ncol(sines)))
y 軸側も同様にして 引数 ylim で調節してください.-- 舟尾 2004-05-03 (月) 14:35:36
sines <- outer(1:20, 1:4, function(x, y) sin(x / 20 * pi * y)) matplot(sines, pch = 1:4, xlim=c(20,1), ylim=c(1,-1), type = "o", col = rainbow(ncol(sines)))
matplot(c(30,-80),c(50,-50)) matplot(c(30,-80),c(50,-50),xlim=par("xaxp")[2:1]とか、2度描画させるのが一番楽なのでしょうか? -- 2004-05-04 (火) 05:05:43
par(xaxp=c(0,1,5)) par("xaxp") # xlim は [0 1] [1] 0 1 5 plot(1:10) # xlim ( c(xaxp[1],xaxp[2]) ) がこの時点で変更される par("xaxp") # xlim は [2 10] に [1] 2 10 4 par(xaxp=c(0,1,5)) # 自分好みの座標系にする場合はxaxpを設定した後,xlimで指定する plot(1:10, xlim=c(xaxp[1],xaxp[2])) par("xaxp") [1] 0 1 5
余談ですが,par() で設定して (永続的に) 自分好みの座標を設定することは出来る のでしょうか?"usr" や "xaxp" は値がコロコロ変わってしまうので, 仕方なく xlim , ylim で一時的に変更しているのですが.どうも私の使い方が悪い せいか,"usr" や "xaxp" の適当な使い方が思いつきません.-- 舟尾 2004-05-04 (火) 11:14:34
# 原点を通る座標軸を描く plot(rnorm(30), rnorm(30), axes = F, xlab = "", ylab = "") axis(1, pos = 0, at = pretty(par("usr")[1:2]), adj = 0) axis(2, pos = 0, at = pretty(par("usr")[3:4]), las = 2, adj = 1) box()
さち (2004-04-30 (金) 05:19:49)
ある変数に値を代入していき、その変数に値をベクトルのように
記憶させていくプログラムを作りたいです。例えば、
x<-1
x<-3
x<-9
x
1 3 9
のようにしたいです。このとき、
x[3]
のように長さを与えれればよいのですが、
いま代入する変数の数がいくつになるのかわからない状態です。
このような時はどうしたらよいのでしょうか?
初歩的な質問ですが、アドバイスなどお願いします。
> x <- numeric(0) # x <- NULL でもOK (この時点では x は空の変数) > x numeric(0) # この時点では x は空の変数 > x[1] <- 1 > x[2] <- 2 > x[3] <- 3 > x [1] 1 2 3 > x[5] <- 5 # 途中飛ばしてもOK > x [1] 1 2 3 NA 5 # 未定義の x[4] には自動的に NA 値が代入される
> x <- NULL > x <- append(x, 1) > x <- append(x, 3) > x [1] 1 3 > x <- append(x, 2, after=1) > x [1] 1 2 3
石原茂和 (2004-04-27 (火) 07:42:09)
(すみません,同内容を旧Rwikiの掲示板にまちがえてかいてしまいました)
こんにちは.いま気がついたのですが,princompのloadingsは
固有ベクトルそのものですね.
helpでもloadings: the matrix of variable loadings (i.e., a matrix whose columns contain the eigenvectors).
と,そのように書いてあります.
しかし,主成分負荷量は,加工していないもとの変数での値と,主成分スコアの相関係数
のはずですが,
確かに固有ベクトルとたいがいの場合,同じような傾向になりますが
固有ベクトルそのものを負荷量というのは誤解のもとでは?
> x [,1] [,2] [1,] -0.24451455 0.5090637 [2,] 0.04563039 -0.5012150 [3,] 0.97775313 -1.1832550 [4,] 1.26989942 1.4814664 [5,] -0.14870401 -1.3809846 > loadings(princomp(x)) Loadings: Comp.1 Comp.2 [1,] 0.273 0.962 [2,] 0.962 -0.273 Comp.1 Comp.2 SS loadings 1.0 1.0 Proportion Var 0.5 0.5 Cumulative Var 0.5 1.0
koichi (2004-04-19 (月) 23:48:32)
はじめまして。Rの初心者です。
Rで数量化1類を行おうとしているのですが、メモリの問題で手を焼いています。
具体的には、
1列目(V1)を『0から1までの8桁の乱数』、2列目(V2)を『1から1000までの整数のどれか』としたレコード50000件(テキストファイルで820KB)をd0に読み込み、V2を因子として水準1000の数量化1類を行います。
d0$V2 <- factor(d0$V2) result <- summary(lm(V1 ~ V2,data = d0))
すると
Error:cannot allocate vector of size 390625 Kb Reached total allocation of 1022Mb
と出て、タスクマネージャーを見るとRは「応答なし」で止まっています。
このデータ量で390625 Kbもの行列を生成してしまうのでしょうか。それにしても2行目を見ると1022Mbにはまだ余裕があるように思えます…。
メモリ関連の操作や、計算法の工夫を通してなんとか計算させる方法をご存知の方がおられましたら、是非ご教授お願いしたいと思います。
当方の環境はWindowsXP,Pentium4 2.8GHz,1GBRAMです。
よろしくお願いいたします。
# 参考 10055007 は文字列、数値の項目数ですから、 # メモリー量はざっとその 8 倍程度になると考えるべきでしょう > n=100; x=rnorm(n); y=factor(floor(1000*runif(n))); z=lm(x~y); length(unlist(z)) [1] 10902 > n=1000; x=rnorm(n); y=factor(floor(1000*runif(n))); z=lm(x~y); length(unlist(z)) [1] 661272 > n=10000; x=rnorm(n); y=factor(floor(1000*runif(n))); z=lm(x~y); length(unlist(z)) [1] 10055007 # z に含まれる項目総数
どうむ (2004-04-19 (月) 15:20:39)
現在R(Windows版)から呼び出せるCで書いたDLLを作成中です。環境は
■R1.8.1
■コンパイラー:「Borland C++ Compiler 5.5」
■OS:WindowsXP
です。いままでRやSPlusでCで書いたルーティンを作ってきたのですが、今回はCからRの関数を呼び出すことに初めてチャレンジせねばならず、この点に関してアドバイスをいただけると幸いです。「Writing R Extensions」の第4章には一応目を通しましたが。。。
まず、簡単なCルーティンですがextern "C" __declspec(dllexport) void R_TEST001(int *x, int *ret); __declspec(dllexport) void R_TEST001(int x[], int *ret) { *ret = x[0]+x[1]+x[2]+x[3]; }整数型のベクトルを引数にとってその合計を「ret」で返している簡単な関数です。
DLLを作成するのにMakefileを作っておりコンパイルとリンクは以下のとおりです。bcc32 -u- -I"***" -O2 /c ***.cpp ilink32 /w /m /Tpd /L"***?Lib" "C:?borland?bcc55?Lib?C0D32.OBJ" ***.obj, ***.dll, CW32.LIB IMPORT32.LIB (mapファイルの指定が欠如していますが気になさらぬよう。。。)「***.cpp」が該当のCルーティンです。
これを呼び出すRのプログラムは> dyn.load("***.dll") > is.loaded("R_TEST001") #確認 [1] TRUEと、なります。結果は
> ret <- .C("R_TEST001",as.integer(c(1,2,3,4)),ret=integer(1)) > ret$ret [1] 10です。
ここまでは、良いのですがRの「.Call」関数を使用できるようにまずヘッダーファイルを加えてみます。#include <R.h> #include <Rinternals.h> extern "C" __declspec(dllexport) void R_TEST001(int *x, int *ret); __declspec(dllexport) void R_TEST001(int x[], int *ret) { *ret = x[0]+x[1]+x[2]+x[3]; }たった、これだけで上のコンパイルが通らなくなりました。
が以下のように「-A」オプション(ANSI 準拠の予約語のみを使用する)を加えることでなんとかコンパイルは通るようになりました。bcc32 -u- -I"***" -O2 -A /c ***.cpp ilink32 /w /m /Tpd /L"***?Lib" "C:?borland?bcc55?Lib?C0D32.OBJ" ***.obj, ・・・今度は、「Writing R Extensions」の第4章にあるように関数を書いてみました。
#include <R.h> #include <Rinternals.h> extern "C" __declspec(dllexport) void R_TEST001(int *x, int *ret); extern "C" __declspec(dllexport) SEXP R_TEST003(SEXP x, SEXP ret); __declspec(dllexport) void R_TEST001(int x[], int *ret) { *ret = x[0]+x[1]+x[2]+x[3]; } __declspec(dllexport) SEXP R_TEST003(SEXP x, SEXP ret) { int i, j, nx, ny; SEXP ans; nx = length(x); PROTECT(ans = allocMatrix(REALSXP, nx, 1)); UNPROTECT(1); return(ans); }このようにすると、コンパイルは通るのですがリンクができません。
ilink32 /w /m /Tpd /L"***?Lib" "C:?borland?bcc55?Lib?C0D32.OBJ" ***.obj, ***.dll, CW32.LIB IMPORT32.LIB Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル 'Rf_length(SEXPREC *)' が未解決(***.OBJ が参照) Error: 外部シンボル 'Rf_allocMatrix(unsigned int, int, int)' が未解決(***.OBJ が参照) Error: 外部シンボル 'Rf_protect(SEXPREC *)' が未解決(***.OBJ が参照) Error: 外部シンボル 'Rf_unprotect(int)' が未解決(***.OBJ が参照) ** error 2 ** deleting ***.dllR.DLLから「implib.exe」でR.libを作成してそれを指定しても結果は同じでした。
このようなエラーが出るということは、致命的な間違いを、犯しているのでしょう。が、マニュアルを読んでも良くわかりません。
解決につながるような情報がございましたら、よろしくお願いいたします。
> ret <- .Call("R_TEST003",as.double(c(1,2,3,4)),ret=double(1)) Hello! > ret [1] 1 2 3 4ということは、
length allocMatrix PROTECT UNPROTECTが、いけないことになりますね。適切なヘッダーを指定していないのでしょうか?
Rprintfが定義してある「Print.h」には
#ifdef __cplusplus extern "C" { #endifとあって、C++でコンパイルされることを想定しているようですが「length」等が定義してある「Rinternals.h」にはそれらがありません。そのために、C++形式でエクスポートされていたようです。
舟尾 (2004-04-18 (日) 15:49:17)
R を起動しますと,UNIX では x11 が,Windows では windows が,Mac OS 8/9 では macintosh がそれぞれ自動的に起動します (この情報も古い?) が,Mac OS X でも macintosh が起動するのでしょうか?あと,Linux 系の R でも x11 が起動するのでしょうか?興味本位の質問ですが,お答え頂けたら幸いです.
林 (2004-04-14 (水) 13:38:20)
lme4パッケージのGLMM()でできるオブジェクトは
is.list()で調べるとリストなのですが、names()では名前はなく、[[1]]とリストの添え字で参照しようとしても参照できません。str()の出だしはlist()となります。通常のリストでは
List of 5などといくつ要素があるとか返ってくるので、GLMM()でできるオブジェクトはなにか変わっているのでしょうか?
谷村 (2004-04-13 (火) 00:42:16)
VineSeedでR-1.9.0がmakeできません。making dataentry.d from dataentry.c making devX11.d from devX11.c making rotated.d from rotated.c making rbitmap.d from rbitmap.c make[4]: ディレクトリ `/home/hoge/tmp/R-1.9.0/src/modules/X11' から 出ます make[4]: ディレクトリ `/home/hoge/tmp/R-1.9.0/src/modules/X11' に入ります gcc -I. -I../../../src/include -I../../../src/include -I/usr/X11R6/include -I/usr/local/include -DHAVE_CONFIG_H -D__NO_MATH_INLINES -mieee-fp -fPIC -g -O2 -c dataentry.c -o dataentry.lo In file included from dataentry.c:31: /usr/X11R6/include/X11/Xlib.h:1400: error: 文法エラー before "_Xconst" /usr/X11R6/include/X11/Xlib.h:1488: error: 文法エラー before "char" /usr/X11R6/include/X11/Xlib.h:1516: error: 文法エラー before "_Xconst" /usr/X11R6/include/X11/Xlib.h:1520: error: 文法エラー before "char" /usr/X11R6/include/X11/Xlib.h:1542: error: 文法エラー before "_Xconst" [snip]誰かVineSeedでmakeに成功している方はいらっしゃいますか?
XはXOrg-6.7.0-0vl2です。
間瀬茂 (2004-04-04 (日) 23:06:46)
例えばこのQ&Aコーナーがかなり長くなってきたので、アーカイブを作り、古いものを移したいのですが、添付画像ファイルが多いとどうしたら一緒に引越ししたら良いのか?いっそ「Q&A(2)」という名前で新しい頁を立てれば簡単ですが、それもかっこ悪い。うまい方法をご存知の方はお教え下さい。そもそも既存の頁の名前をリンク関係を保存したまま変えることはできないのですよね?
高階知巳 (2004-03-31 (水) 10:56:07)
S/RとJavaのインタフェース SJava を、1年半ほど前に試したときは、動作する環境が非常に限定されている感じで、ちゃんと動作しなかったのですが、最近、どうなっているんだろうと思って omegahat のウェブサイトを見に行こうとしたところ、昨日も今日も繋がらないですね... どなたか、SJavaをうまく使えたという方はいらっしゃいますか?
import org.omegahat.R.Java.*; public class REvalSample { public static void main(String [] args) { String [] rargs = {"--slave", "--vanilla"}; System.out.println("Sample program to call R engine from Java"); ROmegahatInterpreter interp = new ROmegahatInterpreter(ROmegahatInterpreter.fixArgs(rargs), false); REvaluator e = new REvaluator(); Object val = e.eval("x <- sin(seq(0, 2*pi, length=30))"); val = e.eval("x * 2.0"); if (val != null) { double[] objects = (double[])val; for (int i=0; i<objects.length; i++) { System.err.println("("+i+") " + objects[i]); } } } }
みやむら (2004-03-26 (金) 13:42:27)
pairs() の描画のようにして,上三角部分に通常の散布図を,下三角部分に重回帰による残差の散布図を描きたいのですが,適当な方法はあるでしょうか?
(2004-03-26 (金) 13:15:11)
help.startでブラウザが起動しなくなりました。どこをチェックしたら良いのか
ご存知の方は教えてもらえないでしょうか?
こんなコメントが出ます。Making links in per-session dir ...If /usr/bin/open is already running, it is *not* restarted, and you must switch to its window. Otherwise, be patient ...
使用ソフトRAqua ver1.8です。
sak (2004-03-24 (水) 23:53:51)
2変量のヒストグラムを描く事は可能でしょうか?
inagaki00 (2004-03-23 (火) 22:27:03)
長ーいデータを見るとき、DOSではtype hogehoge.txt | more とか
type hogehoge.txt /p のように打ちます(UNIXだとcatですね)
これと同じスイッチがRにはありますでしょうか。
ありそうで見つからないので困っています。
ご存知の方、どうぞよろしくお願い致します。
page(base) Invoke a Pager on an R object ObjecttaskCallbackManager(base) Create an R-level task callback managergrid.newpage(grid) Move to a New Page on a Grid Devicetkpager(tcltk) Page file using Tk text widget
Я・・R (2004-03-23 (火) 18:38:15)
レイアウト、グラフ、余白設定などに関係なく、ページの特定位置にヘッダやフッタを描画したいのですが、mtext(), title() などでは描画内容や余白設定によって位置が動いてしまいます。
ヘッダやフッタを text(ユーザ座標) で描こうと思ったのですが、4隅の座標を得る方法がわからず、少なくとも par() の usr, plt, fig の値から逆算してもレイアウトによって定まらないことがわかりました。
ところが
box(which="outer", lwd=4, lty=2, col="blue")
とやると必ず正しく4隅を囲むので、どうやって4隅の座標を得るのかを見ようと
?box
としましたがソースコードが見れませんでした。
ヘッダやフッタ描画、またはページの4隅のユーザ座標を得る方法をご存知でしたらよろしくお願いします。
(2004-03-23 (火) 11:33:40)
gnome-terminal上では> a <- "日本語" > a [1] "日本語"と日本語が使えますが、ESS上では
という感じになります。gnome-ternimal上では問題がないのでESSの設定で
何とかなればと思っています。ご助言などがございましたらよろしくお願いします。
[環境]
VineLinux2.6
ess-emacs-5.2.0beta1-1vl1
R-1.8.1-4vl1(本家版)
matsu (2004-03-18 (木) 19:06:00)
はじめまして、matsuと申します。
早速ですが、write()やwrite.table()でオブジェクトをファイル
に書き出す場合、ファイルの文字コードを制御することはできるの
でしょうか。
私の環境( R ver1.6.1 Win2k )では sjis(改行コードCRLF)で
書き出されるのですが R側の設定でeuc(改行コードLF)に変更
はできるものなのでしょうか。
ポインタ等でもお教えいただければ幸いです。
よろしくお願い致します。
(2004-03-18 (木) 11:20:43)
windows()などで表示されたウインドウ
に自動的にふられる名称
「R Graphics: Device x」
を変更することは可能でしょうか?
ぶんしょ (2004-03-17 (水) 17:40:55)
非線形回帰の初期値がすぐ入らないのですが、いい方法があれば教えてください。 今やっているのがtpot<-nls(HAV~(a*SI+b)*(1-exp(k*AGE))^m,start=list(a=1,b=-10,k=-0.005,m=1.5),data=plot)という式です。 見当をつけて初期値を入れれば大体はすぐ当てはまるのですが、かたよりが大きい場合、
Error in numericDeriv(form[[3]], names(ind), env) : Missing value or an Infinity produced when evaluating the modelや
Error in nls(HAV ~ (a * SI + b) * (1 - exp(k * AGE))^m, start = list(a = 0.5, : singular gradientや
Error in nls(HAV ~ (a * SI + b) * (1 - exp(k * AGE))^m, start = list(a = -50, : step factor 0.000488281 reduced below `minFactor' of 0.000976563といったエラー文が出ます。これらの意味もできれば教えてください。
Error in numericDeriv(form[[3]], names(ind), env) : Missing value or an Infinity produced when evaluating the model In addition: Warning messages: 1: NaNs produced in: log(x) 2: NaNs produced in: log(x)といったエラー文が出るのですが何がいけないのでしょうか? -- ぶんしょ 2004-03-19 (金) 08:19:17
AGE HAV SI 18 197.98 21.48 20 266.02 23.78 24 695.26 39.88 26 429.21 25.14 27 312.04 22.79 33 484.55 24.15 35 708.11 30.79 25 743.29 35.23 28 714.40 32.50 29 377.93 19.36 29 684.48 29.50 42 557.06 20.37 47 483.70 16.62 50 725.47 20.88 24 400.58 33.11 25 458.79 32.69 25 296.57 24.12 27 382.04 27.50 32 343.38 21.45 33 450.72 26.33 33 375.25 22.31 34 420.39 21.82 36 384.44 20.51が当てはまらない一例なんですが、初期値a,m=正、b,k=負の値を取ることが多いです。どんな感じでしょう?
> optim(c(0.1, 0.1, -0.1, 0.1), SF) $par [1] 10.907251 -1.975936 -0.057869 1.013191 $value [1] 403297 $counts function gradient 313 NA $convergence [1] 0 $message NULL
杉本 (2004-03-17 (水) 16:31:34)
x<-c(8,3,4,2,1,4,8,4,9) y<-c(4,1,5,1,1,2,5,2,3)
として x=a*y+bの形で線形回帰したいときは
lm(x~y)
ですが x=a*y^2+bの形で線形回帰するときはどうすればよいのでしょうか?
lm(x~y^2)
とすると上と同じ結果になってしまいます。もちろん
x=a*y+b*y^2+cの形で線形回帰するときも
lm(x~y+y^2) Call: lm(formula = x ~ y + y^2) Coefficients: (Intercept) y 1.586 1.197
となり、x=a*y+bの形で線形回帰してしまっています。新たにデータとして作り直せばよいのですがlmでなんとかなる方法をご存知でしたら教えていただけないでしょうか。
大熊 大郎 (2004-03-12 (金) 23:58:36)
関数 width.SJ はなんですか?おしえてください。
Rin (2004-03-04 (木) 11:57:28)
hist()を使いヒストグラムを描くとき、matrixデータを与えると列データに対し、色分けして描いてくれますが色分けの中身(データのタイトル)はどのようにしたら表示できるのでしょうか?どなたか知っておられる方がおりましたら、教えてください。
よろしくおねがいします。
> x <- matrix(1:24,6,4) > barplot(x) > barplot(x,col=rainbow(24)) > barplot(x,col=rainbow(12)) > barplot(x,col=rainbow(6)) > barplot(x,col=rainbow(3))
> data(islands) > hist(islands) > legend( 5000,y=30,paste("data",c(1:3)), col = c(1:3), lty=1, merge = TRUE, bg='gray90') > legend(10000,y=30,paste("data",c(1:3)), col = c(1:3), lty=1, merge = TRUE, bg='gray90') > legend(10000,y=40,paste("data",c(1:3)), col = c(1:3), lty=1, merge = TRUE, bg='gray90')
(2004-03-02 (火) 12:57:28)
グラフィックス参考実例集には、なぜか帯グラフがありません。帯グラフを描くときは皆さんどうしていらっしゃいますか?barplotをいじらないとだめですか?
> data(HairEyeColor) > x <- apply(HairEyeColor, 2, sum) > par(fin=c(6,2)) # グラフィックス画面を 6x4 インチに指定 > barplot(as.matrix(x), horiz=TRUE, col=rainbow(length(x)), legend.text=TRUE)
> data(HairEyeColor) > a <- as.table( apply(HairEyeColor, c(1,2), sum) ) > b <- a / apply(a, 1, sum) > barplot(t(b))
> d.seg.xs <- rep((0.2 + 1) * 1:(ncol(t(b)) - 1), each=nrow(t(b))) > d.seg.xe <- rep((0.2 + 1) * 2:ncol(t(b)) - 1, each=nrow(t(b))) > d.seg.ys <- apply(t(b)[,1:(ncol(t(b)) - 1)], 2, cumsum) > d.seg.ye <- apply(t(b)[,2:ncol(t(b))], 2, cumsum) > segments(d.seg.xs, d.seg.ys, d.seg.xe, d.seg.ye)
> barplot(t(b),horiz=TRUE) > d.seg.ys <- rep((0.2 + 1) * 1:(ncol(t(b)) - 1), each=nrow(t(b))) > d.seg.ye <- rep((0.2 + 1) * 2:ncol(t(b)) - 1, each=nrow(t(b))) > d.seg.xs <- apply(t(b)[,1:(ncol(t(b)) - 1)], 2, cumsum) > d.seg.xe <- apply(t(b)[,2:ncol(t(b))], 2, cumsum) > segments(d.seg.xs, d.seg.ys, d.seg.xe, d.seg.ye)
(2004-03-01 (月) 18:58:11)
Rの紹介記事にRが動作するOS一覧を載せたいのですがどこかにそういうものはありますか?
現在の把握状況は下記の通りです。
- MacOS X、Windows、Linux、FreeBSD、NetBSD、OpenBSD、Solaris、AIXでは完全に動作する。
- 古いMacOSは古いRなら動く?
- Linux版のザウルスは、制限がありながらも動作する。
上記以外にRが動作したOSがありますか?
LindowsやBeOS上でRは動作しますか?超漢字はどうですか?
さとう (2004-02-28 (土) 09:46:19)
Emacs+ESS+Rを利用してます。emacsでRファイルを編集するとき、コメントマーク「#」の数により、その行の色を変更できると便利ですよね。
とりあえずの対処療法として、M-x hi-lock-mode M-x highlight-regexp [RET] ### [RET] hi-red-b M-x highlight-regexp [RET] ## [RET] hi-green-bなどとしてます。(順序が大事)
拡張子がR(またはr)のファイルを開いたときには、いつもこのように色づけするスマートな方法はないものでしょうか?
(2004-02-23 (月) 15:18:03)
Rで利用できる並列処理のチュートリアルのようなものはあるのでしょうか?
(2004-02-23 (月) 15:16:40)
最近、64ビットのPCが盛んに話題になっていますが、Rは32ビットよりも、64ビット上の方がパフォーマンスが段違いのでしょうか?
さかもと (2004-02-20 (金) 11:30:56)
Rにて階級区間が異なるヒストグラムを作成したいのですが,どうしてもうまくいきません・・・.間隔dに対してある階級からは間隔fにしたいのですが,
(度数)*d(基準とする標準間隔とでも言いますか・・・)/f
を間隔fの高さにすればいいのですが,どうすればRでそれが可能なのでしょうか?
ちなみに,初心者です・・・.
> x <- rnorm(50) # データ > h <- 0.8 > bins <- seq(min(x)-0.1, max(x)+0.1+h, by=h) > pointlist <- hist(x, breaks=bins, prob=T, plot=F)$counts > hist(x, breaks=bins) # 普通にヒストグラムを描く場合(区切り幅はbinに従う)
リストpointlistには,長さ h ごとに区切られた場合の左から数えた度数が入っています.-- 舟尾 2004-02-21 (土) 20:32:00
(2004-02-17 (火) 18:01:23)
R や S-plus で免疫アルゴリズム(IA)を扱った例はあるのでしょうか?
(2004-02-17 (火) 13:16:00)
ライブラリパッケージが最新バージョンかどうかを確認するため、インストール
しているライブラリのバージョンを表示させたいのですが、方法が分かりません。自分なりに検索してみましたが、方法を見つけることができませんでした。
(2004-02-17 (火) 00:17:51)
Rmapやmaptoolsで表示した地図には縮尺バーや方位記号を入れられないのでしょうか。
(2004-02-16 (月) 19:10:03)
FAQでしたら、削除しください。
x軸とy軸がどちらも単位がm(メートル)であるplotで、x軸の1mとy軸の1mを同じ
長さにしたいのですが、勝手に調整されてそろいません。x軸とy軸の単位長を
同じにする方法はありませんか。
plot(runif(10), 2*runif(10),xlim=c(0,2),ylim=c(0,2))
plot(2*runif(10), runif(10,min=0,max=.1),xlim=c(0,2),ylim=c(0,2))
> par(fin=c(6,3)) > plot(6*runif(100),1.5*runif(100),xlim=c(0,6),ylim=c(0,3)/2)
比例定数 3/6 というのは本質的ではなく、実際の画面を見て適当な比率を試行錯誤するというのが現在思いつく解決策です。なお fin パラメータの既定値は fin=c(6.990803, 6.997416) でこれより大きなサイズは指定でき無いようです。par(fin=c(6,3)) を実行する際は
oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 ... 作業 ... par(oldpar) # パラメータ復帰
を実行しないと後で困るかも知れません。
#ref(): The style ref(filename,pagename) is ambiguous and become obsolete. Please try ref(pagename/filename)
par()$fin[1]*(par()$plt[2]-par()$plt[1]) # x 方向のサイズ(インチ) par()$fin[2]*(par()$plt[4]-par()$plt[3]) # y 方向のサイズ(インチ)と決まります。従って x,y 座標のスケールを同じにするには xlim と ylim の幅をこのサイズの等倍にすれば良いようです。参考コードを紹介しておきます。Xlim と Ylim の倍数 10 は任意ですが同じでないとスケールが異なってしまいます。つまり Xlim と Ylim の幅の比率が実際の比率に等しい必要があります。ただし、これでも正確にいうと座標隅に入る遊び分を考慮していませんから、微妙に異なっているはずです。
> par(fin=c(6,4)) # グラフィックス画面を 6x4 インチに指定 > par(plt=c(0.1,0.9,0.1,0.9)) # 作図領域をグラフィックス画面への割合で指定 > Xlim <- 10*par()$fin[1]*c(0, par()$plt[2]-par()$plt[1]) > Ylim <- 10*par()$fin[2]*c(0, par()$plt[4]-par()$plt[3]) > plot(1:20,1:20, xlim=Xlim, ylim=Ylim)
#ref(): The style ref(filename,pagename) is ambiguous and become obsolete. Please try ref(pagename/filename)
参考までにメモすれば plt, fin の既定値は次のようになっています。
> par()$plt [1] 0.1172537 0.9399432 0.1457143 0.8828571 > par()$fin [1] 6.990803 6.997416
従って既定値での作図画面のサイズはインチ単位でそれぞれ 5.751261, 5.158095 です。
> x <- 1:10 > y <- x * 10 > plot(x,y,asp=1)結果)
#ref(): The style ref(filename,pagename) is ambiguous and become obsolete. Please try ref(pagename/filename)
(2004-02-14 (土) 20:55:31)
library(mva)の関数cancor()を用いれば正準相関係数行列が得られますが、
第 i 正準変量を求める場合はどうすればよいのでしょう?例えば このような分析 を R で行いたいのです.
(exampleでは x %*% xcoef と計算していますが何か違う気がして・・・)
(2004-02-06 (金) 23:25:05)
libraryごとにhtmlやhelpなどヘルプ文書がありますが、latex配下にあるTeX文書は、documentclassもなくいきなり?Headerで始まっていますが、これはどうすればコンパイルできるのでしょう。helpやhtmlでは数式に難があるので、できればxdviなどでヘルプを読んでみたいです。
> options(latexcmd="/usr/bin/latex") > options(dvipscmd="/usr/bin/dvips") > help(optim, offline=TRUE) Saving help page to 'optim.ps' # optim.tex から optim.ps が作られた思いついて次のようにしたら dvi ファイルのオンライン表示が出来ました。
> options(dvipscmd="/usr/bin/xdvi")
cp ./*.dvi /tmpというスクリプトファイル(名前を仮に makedvi )に実行属性をつけた上で
> options(dvipscmd="./makedvi")としてやる。もう少しスクリプトを工夫する余地?
sakamoto (2004-01-30 (金) 19:35:15)
まずは次のプログラムを見てください。
money<-1:10 >a<-readline() money >money[a>5] [1] 1 2 3 4 5 6 7 8 9 10 > a<-as.name(a) > a money > money[a>5] [1] 1 2 3 4 5 6 7 8 9 10
ここでしたい事は、以下の事である。
>money[a>5] [1] 6 7 8 9 10
つまり、文字列として取り込んだものをオブジェクトとして扱いたい。いろいろ探してみたのですが、見つかりませんでした。どなたか教えてもらえないでしょうか?
> a <- runif(10) # a という名前の数値ベクトルを作る > a [1] 0.6313190 0.4538556 0.3934363 0.4643964 0.3375608 0.3453617 0.3785413 > aa <- readline() # その名前をコンマンドラインから入力 a # 名前は a > aa [1] "a" # aa は文字列 "a" > get(aa) # aa という文字列を名前に持つオブジェクトの値を得る [1] 0.6313190 0.4538556 0.3934363 0.4643964 0.3375608 0.3453617 0.3785413
まとめてみると
> a <- runif(10) > b <- runif(10) > x <- 1:10 > x[get(readline())<0.5] a # コンマンドラインから a を入力 [1] 3 4 5 6 10 # x[a<0.5] が得られた > x[get(readline())<0.5] b # コマンドラインから b を入力 [1] 1 3 4 5 6 7 8 # x[b<0.5] が得られた
> a [1] 0.557755694 0.756125389 0.062838319 0.116221907 0.287878570 0.490844365 > y <- readline() a > y [1] "a" > eval(parse(text=y)) # 文字列 y をオブジェクト名 a に変換し評価した [1] 0.557755694 0.756125389 0.062838319 0.116221907 0.287878570 0.490844365
(2004-01-29 (木) 17:57:01)
ヒストグラムを描くhist()の引数のbreaks=seq(min,max,by=bin)の minとmaxはどういった基準で決めればよいのでしょう?
Soichi (2004-01-29 (木) 05:39:56)
Matlabから乗り換えようかとRを試し始めました。
ベクトルと行列のどちらも引数として受け取ることができ、
行列を受け取ったときは各列に処理を、
ベクトルを受け取ったときは(n,1)行列に変換した上で、その後の処理を行いたいのですが、
Rでそのようなことは可能でしょうか。
if(is.vector(x)) x <- as.matrix(x) #もしくは if(!is.matrix(x)) x <- as.matrix(x)ちなみに縦ベクトルにしたければ
if(is.vector(x)) x <- t(as.matrix(x))判断する必要がないのなら単に
x <- as.matrix(x) # x がすでに行列なら何もしない
φ(oo-)o (2004-01-28 (水) 09:11:25)
このサイトの「R プログラミング Tips 大全」のページで指定秒数プログラムをアイドリングする関数
は標準関数の Sys.sleep(sec) ではどうでしょうか。ヘルプにはThis function may not be implemented on all systems.
と書かれていますが、Windows2000では動くようです。
(R 1.8.1を使用しています)
mnyu (2004-01-23 (金) 01:08:50)
作ったページの削除は どうしますか
tia (2004-01-22 (木) 17:22:56)
Rに関してまったくの初心者です.
Rで非線形問題を解くことは可能でしょうか.
ご教授いただければ幸いです.
sato (2004-01-22 (木) 14:24:52)
Rを使って、1‐累積密度分布であるCCDFを描きたいのですが、パッケージ等では用意されていないのでしょうか?
またもしない場合は、パッケージstepfunの中のecdfを使って描く必要があるのでしょうか?
(2004-01-19 (月) 16:29:43)
Rでビット演算をするには、どうすれば、良いのでしょう
> heat.colors(9) [1] "#FF0000" "#FF2A00" "#FF5500" "#FF8000" "#FFAA00" "#FFD500" "#FFFF00" [8] "#FFFF40" "#FFFFBF"のようなカラーを与える16進数(を表す文字列)間の and, or, xor, negate 等の演算という意味でしょうか。固定長で大量に処理する必要がない限り、腕力で関数を書くことは難しくはないような気がします。まず二進ベクトルに変換し、桁毎に演算することになるでしょうか。ついでにいえば、同じ長さの二進数ベクトルに変換すれば、論理値ベクトルに対する組み込み演算 &,|,!,xor が使えます。-- 2004-01-19 (月) 21:11:25
ぶんしょ (2004-01-18 (日) 20:38:47)
直線回帰の95%信頼区間をRで計算したいのですがどうしたらよいでしょうか?
(2004-01-13 (火) 21:19:06)
Q & Aではできないのでしょうか?
舟尾 (2004-01-10 (土) 21:12:33)
lm()関数で重回帰分析を行った際,
result <- summary(lm(y~x))
として result[[k]] や result$names (k:整数,names:名前)
をすることで推定値やt値などが取り出せますが,F-statistics
のp-valueだけがどうやっても取り出せません.names()で調べても
F-statisticsのp-valueにあたるものが見当たらないのですが,
この件に関して情報をお持ちの方,レス頂ければ幸いです.
間瀬 2004-01-10 (土) 22:52:45
たしかに summary.lm 関数は F 統計量の p 値自体は計算しないようですね。次のようにすれば計算可能ですが、summary.lm が表示する p 値はいつの時点で計算されるのか?
> x=1:10 > y=c(rnorm(5),rnorm(5,mean=1)) > z=summary(lm(y~x)) > w=z$fstatistic > pf(w[1], w[2], w[3], lower.tail=FALSE) value 0.1643454
中澤 2004-1-12(月)11:42:00
print.summary.lmの中のようです。プロンプトでprint.summary.lmと打てば,
if (!is.null(x$fstatistic)) { cat("Multiple R-Squared:", formatC(x$r.squared, digits = digits)) cat(", Adjusted R-squared:", formatC(x$adj.r.squared, digits = digits), "?nF-statistic:", formatC(x$fstatistic[1], digits = digits), "on", x$fstatistic[2], "and", x$fstatistic[3], "DF, p-value:", format.pval(pf(x$fstatistic[1], x$fstatistic[2], x$fstatistic[3], lower.tail = FALSE), digits = digits), "?n") }
となっているのがわかります。
haru (2004-01-09 (金) 14:52:09)
初心者なのですが、R1.8.1をダウンロードして早速Excelでデータを入力し、customernumberという名前でテキスト形式で保存。Rで読み込もうと思ってcustomernumber <- read.table("costomernumber.txt")
としましたが
Error in file(file, "r") : unable to open connection
In addition: Warning message:
cannot open file `costomertable.txt'
というエラーメッセージがでてしまい読み込むことができません…。
read.delimなども使ってみましたが同じ結果でした。
http://phi.ypu.jp/swtips/Data2R.htmlに書いてある説明通りにやったはずなのですが…
Rに関する質問なのかもよくわかりませんが、よろしくお願いします。
文字の読み込み (2003-12-16 (火) 01:33:52)
文字列(例えば3030A6-0010など)の入ったファイルから各々の文字列を読み込みたいのですが、scan()関数を使ってcdata <- scan("worldstnid.dat")??
stnid <- cdataとしても、Error in scan("worldstnid.dat") : "scan" expected a real, got "3030A6-0010"と、怒られてしまいます。どうもscan()関数は数値データにしか対応しいないように思えて仕方ないのですがそうなのでしょうか?また、このような文字列を読み込む関数がほかにあるのであれば教えていただきたいです。よろしくお願いします。
mac (2003-12-14 (日) 05:55:22)
OSXのパンサーを使っています。
Rでproxyを利用したいのですが、どうすればいいのでしょうか。
教えてください。
(2003-12-12 (金) 16:58:27)
Windows用のRを2つ立ち上げて、
それぞれを操作した場合に、
それぞれの実行結果は完全に独立だと思ってよいのでしょうか?
TAKU (2003-12-12 (金) 11:33:19)
超初心者で、はじめてLinuxをインストールし、Rをemacs上で立ち上げる
とこまでできたのですが、postscript以外のグラフィックコマンドが
使えないのです。png("hoge")やx11()どを入力すると
X11 is not available
とエラーメッセージがでてしまいます。Rの質問ではないのかもしれませんが、
助け舟をよろしくお願いします。
ディストリビューションはdebianです。
ぽいと (2003-12-11 (木) 18:21:16)
現在、R言語でプログラムを書いたのはいいのですが、その結果(様々な数値)を別のファイルへ格納したいのですが、その方法が分かりません。扱っているデータが膨大な上、outputも多いのでいちいちコピー&ペーストと言うわけにもいきません。どなたか知っておられる方がおりましたら、教えてください。よろしくおねがいします。
R初心者 (2003-12-11 (木) 16:03:04)
現在Linux上でパッケージ「evd」をinstall.package("evd")で確かにインストールしたのですが、search()でインストールされているパッケージ情報を参照しても、インストールされているとの表示がでません。またWindows版のRではLoad Packagesで簡単にロードできたのですが、Linux上ではそのロード方法が分かりません。どなたかご存知の方がおられましたら、ご教授願います。
msasalo (2003-12-10 (水) 21:48:07)
はじめまして。最近Rを使いはじめるようになった者です。
200万件38Mbのデータを処理しようと思っていたのですが、読み込みできず、あきらめました。
そこで、データのサブセットを作って36万件6Mbのデータを作ったのですが、読み込みはできたものの、Strip spot anovaができません・・・・。1way-anovaが何とかできる程度です。
マシンのスペックは、P4-1.6GHz,512Mで、ページングメモリーは4G確保しました。実行すると15分ほどで、CPU使用率は100%、ページングファイルは0.8Gとなり、12時間経過すると、1.3G程度となり・・・何も変わりません・・・1週間待つべきでしょうか・・・。
データファイルを元にランダムにとる方法がRにあるとありがたいのですが・・・。どなたか、お手すきの方がいらっしゃいましたらアドバイスお願いします。
> x=rnorm(2000000) # 200万個の正規乱数発生 > length(x) [1] 2000000 > 2000000*8/1024/1024 [1] 15.25879 # 15 Mbyte > xx = sample(x, 10000) # その中から一万個を無作為抽出 > length(xx) [1] 10000
(2003-12-10 (水) 16:59:27)
2変量乱数の発生でt乱数の作り方を教えて下さい。
- CRAN にあるアドオンパッケージ mvtnorm は多変量の正規分布とT分布用のパッケージのようです。-- 2003-12-10 (水) 20:33:13
アルゴリズムを書く代わりに命題みたいなものを示します。
拡張性があるように2変量ではなく3変量楕円t乱数に従う乱数を生成する関数を以下に定義します(2変量の場合は met3 中のfor文の中身をいじって下さい)。
met3 <- function(m, mu, V, n) { # m : 自由度 # mu : 平均ベクトル # V : 散らばり行列 # n : 乱数の個数 U <- svd(V)$u V1 <- svd(V)$v D <- diag(sqrt(svd(V)$d)) B <- U %*% D %% t(V1) w <- c() for (i in 1:n) { R <- 0 for (j in 1:m) { R <- R + rnorm(1)^2 } w <- append(w, list(mu + B %*% (cbind(rnorm(3))*sqrt(m/R)))) } return(w) }
# 実行例 mu <- cbind(c(1,1,1)) V <- array(c(2,1,1,1,2,1,1,1,2), dim=c(3,3)) n <- 1000 w <- met3(5, mu, V, n) sm <- 0 for (i in 1:n) { sm <- sm + w[[i]] } sm <- sm/n sv <- 0 for (i in 1:n) { sv <- sv + (w[[i]]-sm) %*% t(w[[i]]-sm) } sv <- sv/n
この分布の平均ベクトルはμ、分散共分散行列はm/(m-2)*V(m>2)なので、 多変量楕円t乱数がうまく出来ているかどうかはこれで確かめることが出来ます。-- 舟尾 2004-01-16 (金) 23:08:24
(2003-12-06 (土) 11:09:38)
どちらの関数でもSturgesの方法によって階級が求められるようですが、nclass.Sturges()は、hist()による出力結果ではどの部分になるのでしょうか?
ということでしょうか。 -- 2003-12-06 (土) 17:00:57
x<-rnorm(80,mean=0,sd=1) s<-nclass.Sturges(x) b<-length(hist.default(x,breaks = "Sturges")$breaks) s;b
> test <- function(x) {c(nclass.Sturges(x),nclass.scott(x),nclass.FD(x), + length(hist(x)$breaks),length(hist.default(x)$breaks))} > test(rnorm(1000)) [1] 11 21 26 16 16 > test(runif(1000)) [1] 11 10 10 11 11 > test(rnorm(1000)) [1] 11 19 25 15 15 > test(rexp(1000)) [1] 11 20 32 15 15 > test(rcauchy(1000)) [1] 11 109 3057 13 13 # ずいぶんと違うもんですね!グラフでは br="scott" が一番まし
> nclass.scott(x) [1] 9 > length(hist(x,breaks="scott")$breaks) [1] 8 > nclass.FD(x) [1] 18 > length(hist(x,breaks="FD")$breaks) [1] 14 > nclass.Sturges(x) [1] 9 > length(hist(x)$breaks) [1] 8
f (2003-12-06 (土) 00:37:19)
R(D)COMを使って、VC++で作ったプログラムにRを組み込みたいのですが、上手く出来ません。パスの設定はしたのですが・・。
R(D)COMをお使いの方がおられましたら、使用法等、ご助言お願いいたします。
さかい (2003-12-04 (木) 18:59:26)
i<500のときx=1、500<=i<1000のときy=1、
それ以外のときz=1とするプログラムを作成したかったので、
以下のようなプログラムを作成したのですが、
iが1000以上のときx=0,y=1,Z=0となり、うまく値を返してくれませんでした。
どのようにしたら解決できるのか分かる方がいたらアドバイスをお願いします。
以下のプログラムはRプログラミングTips大全集の条件実行 if , if elseを参考にして作成しました。 #プログラム x <- 0 y <- 0 z <- 0 i <- 2000 if (i < 500) {x <- 1} else if (500 <= i < 1000) {y <- 1} else z <- 1 #結果 > x [1] 0 > y [1] 1 > z [1] 0
x <- ifelse(i < 500, 1, 0) y <- ifelse(i < 1000, 1, 0) z <- ifelse(i >= 1000, 1, 0)
ついでですが、今チェックをしていて気づきましたが R 1.8 からは暗黙のリスト返り値 return(x,y,z) が非難されるようになったのですね。便利だと思うのですが。
> test <- function(x,y) return(x,y) > test(1,2) $x [1] 1 $y [1] 2 Warning message: multi-argument returns are deprecated in: return(x, y)
> x = (i < 500)+FALSE; y = (i < 1000)+FALSE; z=(i >=1000)+FALSE > x;y;z [1] 0 [1] 0 [1] 1
なかま (2003-12-04 (木) 10:42:45)
http://www.bioconductor.org/ のが 1.0.2 で cran.r-project.org の contrib/Devel のは RPgSQL_1.0-0.tar.gz http://sourceforge.net/projects/rdbi/ のは 0.1.2 とすると、
bioconductor のが最新?
(2003-11-29 (土) 17:20:27)
棒グラフを作図するのには barplot(1:10) のようにすれば良いとわかりました。
そこで、Y 軸を対数軸として作図しようと log="Y" を指定したところ以下のようなエラーとなりました。barplot(1:10, log="y")
Error in plot.window(xlim, ylim, log = "", ...) :
formal argument "log" matched by multiple actual arguments
対数軸の棒グラフはどのように指示すれば描くことが出来るのでしょうか?
よろしくお願いします。
detour (2003-11-28 (金) 14:49:55)
subsetで名義変数の特定の値を除いたサブセットを作成したとき、例えば、
a<-data.frame(choice=c("ab","ab","ab","c","c","d","d","d"))
summary(a)
summary(subset(a,choice!="c"))
"c"というのが一応残っているようです。これはどうやったら消せるのでしょうか。初心者ですが、よろしくお願いいたします。
> b=data.frame(choice=a[a!="c"]) > summary(b) choice ab:3 d :3
R初心者 (2003-11-28 (金) 14:21:53)
ただいまRをUNIXにインストールしようとしています。R-1.8.1のソースをダウンロードしてきて解凍し、./configureは成功したのですが、makeができません。以下のような感じで怒られます。make
Make: Cannot open /share/make/vars.mk. Stop.
vars.mkファイルは確かに/share/make/に存在しましたし、原因が分かりません。どなたか解決方法をご存知でしたらご教授下さい。お願いいたします。