タグ付けされた質問 「r-faq」

r-faqタグは、Rタグで定期的に発生する問題について議論する限られた数の質問をグループ化するために作成されます。R for SOの公式FAQではありませんが、一般的な問題に関する興味深い情報源として役立つはずです。

11
非常に大きなテーブルをデータフレームとしてすばやく読み取る
Rのデータフレームとしてロードしたい非常に大きなテーブル(3000万行)があります。 read.table()便利な機能がたくさんありますが、実装には低速化するロジックがたくさんあるようです。私の場合、列のタイプが事前にわかっており、テーブルに列ヘッダーや行名が含まれておらず、心配する必要のある病理学的文字が含まれていないと想定しています。 を使用してリストとしてテーブルを読み取るのはscan()非常に高速である可能性があることを知っています。例: datalist <- scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0))) しかし、これをデータフレームに変換しようとする私の試みの一部は、上記のパフォーマンスを6分の1に低下させるように見えます。 df <- as.data.frame(scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0)))) これを行うより良い方法はありますか?または、問題へのまったく異なるアプローチ?
504 r  import  dataframe  r-faq 

16
空のdata.frameを作成する
行なしでdata.frameを初期化しようとしています。基本的に、各列のデータ型を指定して名前を付けたいのですが、結果として行は作成されません。 私がこれまでにできることは、次のようなものです。 df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"), File="", User="", stringsAsFactors=FALSE) df <- df[-1,] これにより、必要なすべてのデータ型と列名を含む単一の行を含むdata.frameが作成されますが、不要な行も作成されるため、削除する必要があります。 これを行うより良い方法はありますか?
480 r  dataframe  r-faq 

2
`[`が `subset`より優れているのはなぜですか?
data.frameをフィルター処理する必要がある場合、つまり特定の条件を満たす行を抽出する場合は、次のsubset関数を使用します。 subset(airquality, Month == 8 & Temp > 90) [関数ではなく: airquality[airquality$Month == 8 & airquality$Temp > 90, ] 私の好みには主に2つの理由があります。 私はコードが左から右に、よりよく読みます。Rについて何も知らない人でも、subset上記のステートメントが何をしているのかわかるでしょう。 式では列を変数として参照selectできるため、いくつかのキーストロークを節約できます。上記の例では、でairquality一度入力するだけでsubset、で3回入力する必要がありました[。 それで、私は幸福に生きsubsetていました。短くて読みやすいのでどこでも使用し、その美しさを仲間のRプログラマーにさえ主張していました。しかし、昨日私の世界はバラバラになりました。subsetドキュメントを読んでいると、このセクションに気づきました。 警告 これは、インタラクティブに使用することを目的とした便利な関数です。プログラミングには、[のような標準サブセット関数を使用することをお勧めします。特に、引数サブセットの非標準評価は予期しない結果をもたらす可能性があります。 誰かが著者の意味を明確にするのを手伝ってくれませんか? まず、「インタラクティブに使用する」とはどういう意味ですか?バッチモードで実行されるスクリプトとは対照的に、対話型セッションが何であるかはわかっていますが、どのような違いがあるのか​​わかりません。 それでは、「引数サブセットの非標準の評価」と、なぜそれが危険なのか、例を挙げて説明していただけますか?
400 r  filter  subset  r-faq 


6
ソースからRパッケージをインストールするにはどうすればよいですか?
友人がRでNYtimesをウェブスクレイピングするこの素晴らしいチュートリアルに沿って私を送ってくれました。ぜひ試してみたいです。ただし、最初のステップは、ソースからRJSONIOと呼ばれるパッケージをインストールすることです。 私はRをかなりよく知っていますが、ソースからパッケージをインストールする方法がわかりません。 Mac OSXを実行しています。
392 r  package  install  r-faq 

30
モードを見つけるための組み込み関数はありますか?
Rではmean()、median()期待どおりの動作をする標準関数です。 mode()オブジェクトの内部ストレージモードであり、引数で最も多く発生する値ではありません。しかし、ベクトル(またはリスト)の統計モードを実装する標準ライブラリ関数はありますか?
392 r  statistics  r-faq 


10
データフレームから特定の列を抽出する
6列のRデータフレームがあり、列が3つだけの新しいデータフレームを作成します。 私のデータフレームをされたと仮定するとdf、私は列を抽出したいA、Bと、Eこれが唯一の私が把握することができますコマンドです: data.frame(df$A,df$B,df$E) これを行うよりコンパクトな方法はありますか?
365 r  dataframe  r-faq 

13
先頭と末尾の空白を削除する方法は?
data.frameの先頭と末尾の空白に問題があります。例えば私の特定を見てみたいとrowしてdata.frame、特定の条件に基づいて: > myDummy[myDummy$country == c("Austria"),c(1,2,3:7,19)] [1] codeHelper country dummyLI dummyLMI dummyUMI [6] dummyHInonOECD dummyHIOECD dummyOECD <0 rows> (or 0-length row.names) オーストリアが明らかに私の国に存在していたので、なぜ期待した出力が得られなかったのかと思いましたdata.frame。私のコード履歴を調べ、何がうまくいかなかったかを理解しようとした後、私は試しました: > myDummy[myDummy$country == c("Austria "),c(1,2,3:7,19)] codeHelper country dummyLI dummyLMI dummyUMI dummyHInonOECD dummyHIOECD 18 AUT Austria 0 0 0 0 1 dummyOECD 18 1 コマンドで変更したのは、オーストリアに続く追加の空白です。 さらに厄介な問題が明らかに発生します。たとえば、country列に基づいて2つのフレームをマージする場合などです。1つdata.frameは"Austria "他のフレームにある間使用します"Austria"。マッチングが機能しません。 問題を認識できるように画面の空白を「表示」する良い方法はありますか? Rの先頭と末尾の空白を削除できますか? これまでPerlは、空白を削除する単純なスクリプトを記述してきましたが、R内でなんとかできればいいのですが。

15
グループごとに変数を合計する方法
2列のデータフレームがあります。最初の列には「First」、「Second」、「Third」などのカテゴリが含まれ、2番目の列には「Category」から特定のグループを見た回数を表す数値が含まれています。 例えば: Category Frequency First 10 First 15 First 5 Second 2 Third 14 Third 20 Second 3 データをカテゴリ別に並べ替え、すべての頻度を合計したい: Category Frequency First 30 Second 5 Third 34 Rでこれをどのように実行しますか?
357 r  dataframe  aggregate  r-faq 

8
先行ゼロを追加する方法は?
次のようなデータセットがあります。 anim <- c(25499,25500,25501,25502,25503,25504) sex <- c(1,2,2,1,2,1) wt <- c(0.8,1.2,1.0,2.0,1.8,1.4) data <- data.frame(anim,sex,wt) data anim sex wt anim2 1 25499 1 0.8 2 2 25500 2 1.2 2 3 25501 2 1.0 2 4 25502 1 2.0 2 5 25503 2 1.8 2 6 25504 1 1.4 2 各動物IDの前にゼロを追加したい: data …

5
Rでtrycatchを書く方法
trycatchウェブからのダウンロードのエラーに対処するためのコードを書きたいのですが。 url <- c( "http://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html", "http://en.wikipedia.org/wiki/Xz") y <- mapply(readLines, con=url) これらの2つのステートメントは正常に実行されます。以下に、存在しないWebアドレスを作成します。 url <- c("xxxxx", "http://en.wikipedia.org/wiki/Xz") url[1]存在しません。どのようにしてtrycatchループ(関数)を 作成するのですか? URLが間違っている場合、出力は「Web URLが間違っている、取得できません」となります。 URLが間違っている場合、コードは停止しませんが、URLリストの最後までダウンロードを続けますか?

28
不足しているパッケージをチェックしてインストールするエレガントな方法は?
最近、多くのコードを共著者と共有しているようです。それらの多くは初心者/中級Rユーザーであり、まだ持っていないパッケージをインストールする必要があることを理解していません。 を呼び出すエレガントな方法はありinstalled.packages()ますか?それをロードしてインストールしているものと比較して、見つからない場合はインストールしますか?
336 r  packages  r-faq 


11
データフレームの列を並べ替える方法を教えてください。
この入力をどのように変更しますか(シーケンス:時間、入力、出力、ファイル): Time In Out Files 1 2 3 4 2 3 4 5 この出力(シーケンス:時間、出力、入力、ファイル)に? Time Out In Files 1 3 2 4 2 4 3 5 これがダミーのRデータです。 table <- data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5)) table ## Time In Out Files ##1 1 2 3 4 ##2 2 3 4 5
311 r  sorting  dataframe  r-faq 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.