Notice: Undefined index: main in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 44
Notice: Undefined index: main in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 44
Notice: Undefined index: main in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 44
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'kattene_custom' not found or invalid function name in /home/u407412259/domains/emmalanglab.com/public_html/wp-includes/class-wp-hook.php on line 324
Warning: array_merge(): Expected parameter 1 to be an array, null given in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 76
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 79
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 81
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 87
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 91
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 91
Notice: Undefined index: main in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 44
Notice: Undefined index: main in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 44
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'kattene_custom' not found or invalid function name in /home/u407412259/domains/emmalanglab.com/public_html/wp-includes/class-wp-hook.php on line 324
Warning: array_merge(): Expected parameter 1 to be an array, null given in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 76
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 79
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 81
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 87
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 91
Notice: Trying to access array offset on value of type null in /home/u407412259/domains/emmalanglab.com/public_html/wp-content/plugins/kattene/plugin.php on line 91
自分の備忘録的な感じになりますが、Rで重複しているデータを抽出する方法
です。とてもシンプルで簡単です。
ExcelファイルとRStudioを使用しています。
準備: データセットの作成
(データセットが手元に既にある場合は、ここは読み飛ばしてもらって大丈夫です。)
今回の例では、Excelファイルを使用します。
例えばこのサイトでは、洋書で学んだ英単語を1章ずつに分けて投稿しているものがありますが、重複するものが無いようExcelファイルで管理をしています。
Rでデータセットを読み込む際、ExcelファイルではなくCSVファイルを使いたい場合は、ファイルを保存する際にCSVファイルの形式を選択します。
Excelファイルだけで重複箇所を特定する簡単な方法を主人が教えてくれたので、それもメモにしてみました。興味のある方は合わせてチェックしてみてください。
Rのスクリプト
上記のファイルをRStudioで読み込み、重複の有無を確認します。
library("openxlsx") # Excelファイルの読み込みができるライブラリ
vocabulary_file <- read.xlsx("/Users/Emma/filename.xlsx") # Excelファイルを読み込む
head(vocabulary_file) # 必要に応じてファイルの内容を出力・確認
library("dplyr") # データの整理に長けたライブラリ
duplicate <- vocabulary_file %>% # vocabulary_file の中の
group_by(Word) %>% # Wordという列 で
filter(n()>1) # 2つ以上同じ値・文字列がある行を抽出
duplicate <- duplicate[order(duplicate$Word),] # 出力結果が英単語ごとにまとまるよう並び替え
duplicate # 重複している行の出力
2行目は、read.csv()
でCSVファイルを読み込むこともできますが、CSVファイルだとファイルに色をつけた時にその色が保存されないので、私はExcelファイルを使っています。(read.csv()
の場合は1行目のライブラリ読み込みは不要) また、ファイルへのパスは人により違います。
10行目のduplicate <- duplicate[order(duplicate$Word),]
を入れないと、読み込んだデータの順番のままになり、ちょっと見づらいのでこのコードで並び替えています。今回は対象が英単語なので、アルファベット順になりました。
上記を実行した例はこんな感じになります。
重複しているものがある場合
3つ、重複しているデータを入れてみました。
> duplicate
# A tibble: 6 x 6
# Groups: Word [3]
`Ch#` n Word PoS Syn.Rephrase Def
<dbl> <chr> <chr> <chr> <chr> <chr>
1 1 8 dimpled cheeks n cheeks have natural dents; dimples えくぼのある頬
2 99 1 dimpled cheeks n cheeks have natural dents; dimples えくぼのある頬
3 4 14 impeccable (adj) adj flawless 非の打ちどころのない
4 100 14 impeccable (adj) adj flawless 非の打ちどころのない
5 5 5 initiate (n) n a person who has been initiated 新入者
6 100 5 initiate (n) n a person who has been initiated 新入者
ちゃんと重複しているものが出てきてくれました。
重複しているものがない場合
> duplicate
# A tibble: 0 x 6
# Groups: Word [0]
# … with 6 variables: `Ch#` <dbl>, n <chr>, Word <chr>, PoS <chr>, Syn.Rephrase <chr>, Def <chr>
重複しているデータが無いと、全てコメントアウトの状態で結果が表示されます。
Rを勉強するなら
私はR(RStudio)の勉強にはこちら書籍を使っているのですが、初心者の私でもとても分かりやすくてかなりおすすめです。私はKindle版を使ってデスクトップやパソコン、iPad等で読んでいます。
学生のときに少しかじったRはとっても難しそう・めんどくさそうで全然勉強しなかったのですが、バイオインフォマティクスのお手伝いでRを使い出してみたらRのすごさ・便利さが分かり、そして何より面白い・・・
生命科学に限らずマーケティングなどにも利用されているようなので、データ・サイエンスの分野で活躍するには必修かもしれないですね。