Rに関するsilovarのブックマーク (16)

  • Rで重複している箇所を取り出す方法|Colorless Green Ideas

    以下、R言語を用いて、表型のデータにおいて重複している箇所を取り出す方法を紹介していきたいと思う。 解法1:dplyr パッケージを使う dplyr パッケージを使うことで、簡単に重複しているデータを抽出することができる。具体的には、group_by()を使って ID となっている列を指定し、filter(n() > 1) でIDに重複がある行(レコード)を抽出することにある。 具体的なコードの例を見てみよう。ここでは、先に挙げた作家名・作品名が載った表を literature というデータフレームに入れている。 # 必要なパッケージの読み込み library("dplyr") # 操作対象となるデータフレームの準備 literature <- data.frame( ID = c(2435, 5342, 4813, 2435, 8791, 9318, 6534), 作家名 = c("夏目

    Rで重複している箇所を取り出す方法|Colorless Green Ideas
    silovar
    silovar 2019/05/24
  • R 2つのリストを比較する関数(intersect、setdiff)の紹介 - 統計学と疫学と時々、助教生活

    今日はリストを比較する時に役にたつコマンドを紹介します。 これらは膨大なリストを扱う際に、「共通のものを抽出する」「片方に特有のものを抽出する」などに非常に役に立ちます。 早速、実践 下記のようにAとBのリストが与えられているとする。 #AとBそれぞれ4つと3つのSNPのリストがあるとする。 A <- c("rs1", "rs2", "rs3", "rs4") B <- c("rs2", "rs4", "rs5") 両方にふくまれている文字列を抽出する(Aにもあって、Bにもある) Int <- intersect(A, B) Int # "rs2" "rs4" Aのみにふくまれている文字列を抽出する(Aにあって、Bにない) difA <- setdiff(A, B) difA # [1] "rs1" "rs3" Bのみにふくまれている文字列を抽出する(Bにあって、Aにない) difB <-

    R 2つのリストを比較する関数(intersect、setdiff)の紹介 - 統計学と疫学と時々、助教生活
    silovar
    silovar 2019/05/22
  • dplyr と tidyr でクロス集計表をつくる count() 編 - Knowledge As Practice

    どうやったらデータフレーム形式のクロス集計表が簡単にできるかな、と探していたところ、次の2つにページに行き着きました。 d.hatena.ne.jp newscentral.exsees.com もちろん table() でもクロス集計表はできますが、データフレーム形式ではありません。なので、dplyr と tidyr を使ってデータフレーム形式のクロス集計表がほしかったので、調べていました。すでにやっていらっしゃる方がいて、たいへん勉強になりました。感謝です。 私のクロス集計表の作り方は以下のとおりです。上記2ページは、普段からプログラミングに親しんでいるような方(たぶん)なので、私のやり方は違っているかもしれません。 ■必要なパッケージ dplyr tidyr ■使う関数 count spread ■扱うデータ haisya01.txt(タブ区切りのテキストファイルです) ※私が専門職

    dplyr と tidyr でクロス集計表をつくる count() 編 - Knowledge As Practice
    silovar
    silovar 2019/05/08
  • [R]データフレームを縦方向に連結する - Golden State

    同じデータフレームを縦方向に連結する方法(一方のデータフレームに行を追加するイメージ)。rbind関数を使えばよい。以下、例。 > (x <- data.frame(a = 1:3, b = c("A", "B", "C"))) a b 1 1 A 2 2 B 3 3 C > (y <- data.frame(a = 5:6, b = c("D", "E"))) a b 1 5 D 2 6 E > rbind(x, y) a b 1 1 A 2 2 B 3 3 C 4 5 D 5 6 E 当然、連結するそれぞれのデータフレームの桁の名前や型がそろっていなければならない。

    [R]データフレームを縦方向に連結する - Golden State
    silovar
    silovar 2019/05/08
  • dplyrを使いこなす!基礎編 - Qiita

    はじめに 4月ということで、新卒が入ってきたりRを使ったことないメンバーがJOINしたりしたので、 超便利なdplyrの使い方を何回かに分けてまとめて行きます。 Rは知らないけど、SQLとか他のプログラミング言語はある程度やったことあるみたいな人向けです。 dplyrを使いこなす!シリーズ 基礎編以外も書きましたので、↓からどうぞ。 * dplyrを使いこなす!Window関数編 * dplyrを使いこなす!JOIN編 dplyrとは データフレームの操作に特化したパッケージです。 Rは基的に処理速度はあまり早くないですが、dplyrはC++で書かれているのでかなり高速に動作します。 ソースの可読性もよくなるので、宗教上の理由で禁止されている人以外は使うメリットは大きいです。 処理可能なデータサイズの目安 あくまでも個人の環境に強く依存した感覚値ですが、1000万行、100MBぐらいのデ

    dplyrを使いこなす!基礎編 - Qiita
    silovar
    silovar 2019/05/08
  • R 使い方 集計に便利な関数 aggregate

    データフレームを使って集計を行う場合に、使いやすい関数があります。aggregate関数です。データフレームの計算にはapply系の関数がよく使われますが、わかりづらいという方にはオススメの方法です。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 関連記事 R 使い方 欠損値 NA データフレームのNAを探す方法 R 使い方 欠損値 NA 除去方法 R 関数 maxの位置・minの位置を求める R 使い方 データフレーム 累積和を求める aggregate関数の使い方 aggregate関数は、データフレームについて「指定した列をカテゴリで分けて集計する」というような計算を行うことができます。引数に、集計したい列(群)・識別したい条件(群)・関数を指定します。 単純構造 構造が単純な場合は、table関数でも同様のことができます。 R> df <- data.frame(n

    R 使い方 集計に便利な関数 aggregate
    silovar
    silovar 2019/05/08
  • R言語dplyr::distinctで簡単に重複行を削除できる。キー項目以外の項目も簡単に抽出。 - 一所懸命に手抜きする

    SQLの select distinct では指定した列をキーにして重複のないデータを取得できます。 重複する行を削除するSELECT DISTINCT - 一所懸命に手抜きする 重複行削除の際、重複判定に指定したキー列項目以外の列も取得するSQL - 一所懸命に手抜きする R言語でも同様のことができるのは既に書きました。 R言語のuniqueや!duplicated で重複のないデータを取り出す - 一所懸命に手抜きする dplyrパッケージを使うと、もっと簡単に実現できます。 Sampleデータ作成 当ブロクで使うサンプルデータを作成するコード保管庫|R|一所懸命に手抜きする[忍者] に掲載したサンプル作成コードを実行すると サンプルテーブル buyList 入荷日付 商品番号 商品名 当社原価 相手原価 20170102 12345 XA-55 3500 3500 20170103

    R言語dplyr::distinctで簡単に重複行を削除できる。キー項目以外の項目も簡単に抽出。 - 一所懸命に手抜きする
    silovar
    silovar 2019/05/06
  • scratch-R: frequencies

    度数とクロス集計 カテゴリカル変数のクロス集計表 (分割表) 、独立性の検定、連関、グラフ化について説明する。 度数表をつくる 度数表 (frequency table, 分割表/contingency table 、クロス集計表/cross-tab ともいう) を作成する方法はいくつかある。以下にその例を示す。また、青木先生のfrequency 関数も便利。 table 関数 table( ) 関数で度数表が作成できる。割合を算出したいときはe prop.table( ) 関数, 合計欄には margin.table( ) 関数が使える。 # 2元の度数表 mytable <- table(gear=mtcars$gear, carb=mtcars$carb) # "gear=..."としないと名前のない表になるので見づらい。 mytable # 集計欄 margin.table(myt

    silovar
    silovar 2019/05/06
  • table 関数を使ったクロス集計 | R | Kengo Nagashima - Keio University

    R の base には、クロス集計を行うための table 関数があります。 ページでは、table 関数を用いた一般的な作表、割合の計算方法、およびパーセント表示についてまとめたいと思います。 table 関数の基的な使い方は、関数の引数に集計対象の変数を与えるだけです。 層別変数を z とし、変数 x, y に対するクロス集計を行う場合は、 set.seed(20120508) x <- sample(letters[1:3], 300, replace = T) y <- sample(letters[4:5], 300, replace = T) z <- sample(letters[6:7], 300, replace = T) t1 <- table(z, x, y) ftable(t1) を実行します。実行結果は以下の様になります。 > ftable(t1) y d e

    silovar
    silovar 2019/05/06
  • lubridateで年齢計算(Excelのアレ) - データ穴リストのブログ

    lubridateーーそれは愛しい、時間概念とのアバンチュール 今宵のステキな刻(とき)を彩る、珠玉のLovely date..... …と、外で書いててかなり恥ずかしい。 ■今回はlubridateパッケージについてです。 lubridate、とても便利!という声は聞きつつも、あんまり他のブログに書かれてないんだもの。 他の記事といえば以下のあたりを参考にさせていただきました。 estrellita.hatenablog.com www.karada-good.net この辺りのブログはもうアレですね。 私にとっての貴重な情報源です。 もうホント、毎日のように仕事もしないで参考にさせていただいてます! ■そうなんだけど だけど、そこから先の、日付データの、次の処理がない。 会員情報とか扱ってるようなお仕事をしてる方だったら、生年月日とか持ってますよね? 年齢とか計算したくないですか……!

    lubridateで年齢計算(Excelのアレ) - データ穴リストのブログ
    silovar
    silovar 2019/05/06
  • 【R】日付から曜日を簡単に取得する方法

    R ( 57 ) トレジャーデータ ( 43 ) Treasure Data ( 27 ) データ処理 ( 24 ) SQL ( 23 ) dplyr ( 20 ) presto ( 12 ) 動画 ( 12 ) BigQuery ( 11 ) 音楽 ( 7 ) データ抽出 ( 6 ) データ集計 ( 6 ) THEO ( 5 ) data.table ( 5 ) filter ( 5 ) セミナー ( 5 ) テオ ( 5 ) 投資 ( 5 ) 研究 ( 5 ) 統計 ( 5 ) Google ( 4 ) Google Spreadsheet ( 4 ) rbind ( 4 ) まとめ ( 4 ) クロス集計 ( 4 ) ビッグクエリ ( 4 ) 作図 ( 4 ) 大規模データ ( 4 ) 日時 ( 4 ) Big Query ( 3 ) Error ( 3 ) RStudio ( 3

    【R】日付から曜日を簡単に取得する方法
    silovar
    silovar 2019/05/06
  • Rで文字列を日付時刻型に変換する

    日付時刻と観測値が対応付いたデータってありますよね。例えば、原子力規制委員会が公開している放射線モニタリング情報だと下記のようなCSV形式で、測定時刻と測定値が対応付いています。 V5, V6 2014/12/26 23:50, 0.033 2014/12/26 23:40, 0.034 2014/12/26 23:30, 0.033 ................, ..... こういうデータを見ると、V5を横軸、V6を縦軸にして時系列グラフを描きたくなりますよね。でも、V5が文字列型で読み込まれていると、そのままplotのx軸に指定してもうまくいきません。 日付や時刻を表現する型に変換してやる必要があります。 上記のような書式(日付がスラッシュ、時刻がコロン)ならば、POSIXlt関数に引数で渡すだけで、簡単に変換することができます。 > as.POSIXlt("2014/12/26

    silovar
    silovar 2019/05/06
    “d$日付時刻 <- as.POSIXlt(d$V5)”
  • R言語で年齢や月齢を計算する。 - Qiita

    目的 R言語で年齢や月齢を計算する。 (年単位や月単位で2つの日付差を計算する) 方法 (生年月日を1981/07/05とした場合) 年齢を求める

    R言語で年齢や月齢を計算する。 - Qiita
    silovar
    silovar 2019/05/06
    “length(seq(as.Date("1981/07/05"), Sys.Date(), "year"))-1”
  • R言語の便利なコマンド集 | AVILEN AI Trend

    R言語では、当に便利なコマンドがいくつもあります。頑張れば、知らなくても解析は出来たりしますが、知っておくと解析がはるかに楽になる、というような類のものになっております。ただし、一度に全部覚えるようなものではなく、実際に解析を行っているうちに徐々に覚えるというようなものです。 なので、今回は「へえ~こんなコマンドもあるんだ~。便利だね~」っていうようなスタンスで、ご自身のパソコンで軽くプログラムを流しながら読んでもらえればと思います。

    R言語の便利なコマンド集 | AVILEN AI Trend
    silovar
    silovar 2019/05/06
  • dplyrを使いこなす!JOIN編 - Qiita

    はじめに 今回は、複数(主に2つ)のdata.frameを結合する方法についてまとめます。 実際に分析する際に、1つのdata.frameだけで完結することはあんまりなく、マスタデータの結合など複数のdata.frameを組み合わせて使う必要がありますが、またまたdplyrを使えば簡単にできます。 結合と言っても、結構色んな方法があるので、分かりやすいようにチートシートからイメージ図を拝借してきました。 1つのdata.frameを操作する場合は、↓の記事を参照してください。 dplyrを使いこなす!基礎編 dplyrを使いこなす!Window関数編 JOINの種類 JOINの種類は大きく分けて以下の3つあります。 種類 説明

    dplyrを使いこなす!JOIN編 - Qiita
    silovar
    silovar 2019/05/06
  • R:list.filesによるファイルパス取得あれこれ。 - Qiita

    list.filesによるファイルパスの取得方法いろいろです。 ファイル件数が増えてくると重くなるので、その場合は他の言語やOSのコマンドでファイル一覧のテキストを読み込ませて処理させた方が効率的ですが、ちょっとした処理やディレクトリ毎の処理ならlist.files便利。 path <- 'C:/data/' # パスを指定してディレクトリ・ファイルパスを取得。 list.files(path) # カレントディレクトリを移動してディレクトリ・ファイルパスを取得。 setwd(path) list.files() # パターンを指定して取得(「txt」が含まれるものを取得)。 list.files(path, pattern="txt") # サブディレクトリを含めてファイルパスを取得。 list.files(path, recursive=T) # サブディレクトリを含めてファイルパスを

    R:list.filesによるファイルパス取得あれこれ。 - Qiita
    silovar
    silovar 2019/05/06
  • 1