京橋のバイオインフォマティシャンの日常

南国のビーチパラソルの下で、Rプログラムを打ってる日常を求めて、、

【Rのジミ〜な小技シリーズ】意外と分からない、ファイルを別ディレクトリに移動させる操作関数篇

過去に、R上から行う、 フォルダの基本操作(作成・削除・コピー・名前変更・移動)について 纏め記事を書いた。

skume.net

この続編的な内容で、ファイルを別ディレクトリに移動させる話となる。 Baseパッケージには適当な関数*1が用意されていないので、 便利なファイル・文字列操作ツールである、filesstringsパッケージ内の関数を使う。

このfilesstringsパッケージは、 当初、ファイルや文字列を操作するためのパッケージとしてスタートした。 その後、fsファイル操作パッケージとstrex文字列操作パッケージが出現し これらパッケージが提供していた機能も提供するようになった。 そのため、これらのパッケージはfilesstringsパッケージの機能をほとんど消滅に追いやった。 しかしながら、 このパッケージはユニークで便利なファイル操作関数というのをいくつか持っている。

今回、filesstringsパッケージのファイル操作関数を使ってみる。

とあるディレクトリとファイル構成について

まずは、例題として扱う、ディレクトリとファイル構成を概説する。

#テストディレクトリ移動
setwd("./test")

#フォルダ・ファイルの表示
list.files(recursive = F)
#[1] "test_A"     "test_B.txt" "test_C.txt" "test_D.txt"

架空のフォルダ・ファイル構成として、 testというディレクトリに入ると、そこには、 test_Aというフォルダ、またtest_B.txtなどのファイルがあるとする。

例題として、test_Aというあるフォルダに、 test_Btest_C.txtとかのファイルを移動させることをやってみる。

 

まずは、filesstringsパッケージのインストール

install.packages関数で、パッケージのインストールを行う。

#filesstringsのインストール
install.packages("filesstrings")
library(filesstrings)

ファイルを移動させる関数群

ファイルを移動させる関数*2には、move_files関数とfile.move関数がある。 以下の通り、move_filesとfile.moveは、全く同じ使い方である。

#move_filesを使う場合
filesstrings::move_files(files="test_B.txt", 
                         destinations="test_A",
                         overwrite = FALSE)
#1 files moved. 0 failed.

#file.moveを使う場合
filesstrings::file.move(files="test_C.txt", 
                        destinations="test_A",
                        overwrite = FALSE)
#1 files moved. 0 failed.

ここで、 - files: 移動するファイル/フォルダの文字ベクトル(相対パスまたは絶対パス)。 - destinations: ファイルを移動させる先のディレクトリの文字ベクトル. - overwrite: ファイルの上書きを許可するか?デフォルトは「FALSE」。 が引数として指定できる。

同時に、N個のものを移動させる場合

#両ファイルをベクトルの変数に入れる
Files <- c("test_B.txt", "test_C.txt")
#OR dir関数を使う
#Files <- dir("test_A", pattern = "txt")

#file.moveを使う場合
filesstrings::file.move(files=paste0("./test_A/", Files), 
                        destinations="../test",
                        overwrite = FALSE)
#2 files moved. 0 failed.

 

これを実行すると、元のファイル構成に戻っている。 つまりは、filesの引数に文字列ベクトルを与えることで、 複数のファイルを同時に移動させることもできる。

参考資料

github.com

*1:リネイムとかはあるが

*2:つまりは、指定したファイルを指定したディレクトリに移動する関数である。

R/rtweetを使って、Twitterでつぶやくための基本的な関数『post_tweet』のこと

rOpenSci (v. 0.6.9) によってレビューされたrtweetパッケージは、TwitterのRESTおよびストリームAPIを介して、Twitterのデータを収集・整理するために設計・実装された。

それを使用するためのR環境の初期設定については、 過去記事の「R/rtweetとか諸々を使って、つぶやきのテキスト解析 (形態素分析 + 感情分析) をやってみた件」を 参考にしてみてください。

skume.net

rtweetパッケージのインストール

rtweetパッケージは、CRAN版と開発版が使える。 インストールの仕方がそれぞれで変わってくる。

#CRANからリリース版のインストールの場合
install.packages("rtweet")

#GitHubから開発版のインストールの場合
install.packages("rtweet", repos = 'https://ropensci.r-universe.dev')

テキストをつぶやく

Twitterの基本操作としては、 ツイート、リプライ(返信)、いいね、リツイートなどがある。 1回につき140文字までのテキスト(=ツイート)や画像を投稿することができる。

post_tweet関数を使って、 ユーザーのTwitterアカウントにステータスアップデートを投稿する。 いわゆる、Twitterのツイートを行うことである。 テキストをつぶやく場合には、statusの引数を使う。

#ロード
library(rtweet)

#テキストをつぶやく
post_tweet( status = "何かをつぶやく" )

#Twitterサイトを開いて、確認する
browseURL("https://twitter.com/home?lang=ja")

画像をつぶやく

また、画像をつぶやく場合には、mediaの引数を使う。 適当な画像(e.g. R言語のロゴ)を用意して、mediaにそのパスを記述する。

#画像をつぶやく
post_tweet(media = "Rlogo.png")

Twitterアカウントに行くと、Rロゴが出力されている。

まとめ

post_tweet関数で、テキストとか画像とかをつぶやける。 他の関数と組み合わせることで、解析結果をツイートする、Botとかもできそうに思う。 近々、rtweetパッケージを使って、Bot作りもやってみようと思う。

rtweet内の関数の概要(機械翻訳)

関数名 概要
as_screenname ユーザー識別子をスクリーンネームとして評価するよう強制します。
bearer_token ベアラートークン。
create_token Twitter 認証トークンを作成します。
direct_messages 認証したユーザが送受信したダイレクトメッセージを取得します。を過去30日間から取得します。
do_call_rbind データフレームのリストを、属性(ツイートやユーザー)を保持したままバインドする
emojis 絵文字のコードと説明のデータです。
flatten データフレームをフラット化/アンフラット化する
get_collections ユーザIDやステータスIDでコレクションを取得する
get_favorites 対象ユーザがお気に入りに登録しているステータスのツイートデータを取得する。
get_followers 対象ユーザをフォローしているアカウントのユーザIDを取得します。
get_friends 対象のユーザーにフォローされているアカウントのユーザーIDを取得します。
get_mentions 認証したユーザーのメンションを取得します。
get_my_timeline 自分のタイムラインを取得します。
get_retweeters 指定されたステータスをリツイートしたユーザのユーザIDを取得します。
get_retweets 特定の Twitter ステータスに対する直近のリツイートを取得します。
get_timeline 1人または複数のユーザのタイムライン(対象ユーザが投稿したツイート)を取得します。
get_tokens Twitter の認証トークンを取得する。
get_trends Twitter のトレンドデータを取得する。
langs Twitter のデータで認識される言語コード。
lat_lng ツイッターデータに緯度・経度の変数を追加します。
lists_members Twitterのリストメンバー(リスト上のユーザー)を取得します。
lists_statuses 指定したリストのメンバーが作成したツイートのタイムラインを取得します。
lists_subscribers 指定したリストの購読者を取得します。
lists_subscriptions 指定したユーザーのリスト購読者を取得します。
lists_users 指定したユーザが購読しているすべてのリスト (自分自身のリストも含む) を取得します。
lookup_collections コレクションを、ユーザ名あるいはステータス ID で取得します。
lookup_coords 指定した位置の座標を取得します。
lookup_friendships 指定した二人のユーザ間の友人関係を調べます。
lookup_statuses 指定したステータス (ステータス ID) に対応するツイートデータを取得します。
lookup_users 指定したユーザ(ユーザ IDやスクリーンネーム)のTwitterユーザデータを取得します。
my_friendships ユーザ間の友人関係情報を検索します。
network_data ネットワークデータ
next_cursor next_cursor/previous_cursor/max_id
parse_stream Twitter のストリームデータ(JSONファイル)をパースしたデータフレームに変換します。
plain_tweets 文字ベクトル(ツイート)を、よりプレーンなテキストにクリーンアップします。
post_favorite 対象のステータスIDをお気に入りに登録します。
post_follow 対象のTwitterユーザーをフォローする。
post_friendship 友情関係の通知やリツイートを更新する。
post_list Twitterのリストを管理します
post_message ユーザーの Twitterアカウントからダイレクトメッセージを投稿します。
post_tweet ユーザーのTwitterアカウントにステータスアップデートを投稿する
rate_limit 指定した Twitter アクセストークンの制限値を取得する
read_twitter_csv カンマ区切り値の Twitter データを読み込みます。
round_time 日付と時刻の値を丸める汎用関数
search_30day 過去30日間のデータを検索する (PREMIUM)
search_fullarchive fullarchive を検索 (PREMIUM)
search_tweets 検索クエリで特定したステータスのツイートデータを取得する。
search_users 検索でヒットしたアカウントのユーザデータを取得します。
stopwordslangs Twitter のストップワード(多言語)データを取得します。
stream_tweets Twitterのライブストリームを収集します。
suggested_slugs ユーザー認証のためのユーザー[アカウント]候補を取得します。
trends_available Twitter のトレンドを、関連する WOEID と共に取得します。
ts_data ツイートデータを時系列的なデータオブジェクトに変換する。
ts_plot ツイートのデータを時系列的なデータオブジェクトとしてプロットします。
tweets_data ユーザデータからツイートデータを抽出する。
tweets_with_users tweets/usersデータのtibblesにデータをパースする
tweet_shot ツイート/スレッドの画像をキャプチャする
users_data tweets データオブジェクトからユーザデータを抽出する
write_as_csv Twitter のデータをカンマ区切りの値ファイルとして保存します。

参考資料

github.com

cran.r-project.org

M1チップ搭載の MacBook Air におけるAutoDock Vina (1.2.2) の諸設定とドッキングシミュレーションについて

f:id:skume:20220210011802p:plain

はじめに - AutoDock Vina

AutoDockは、 30年近く開発が進められている、分子モデリングシミュレーションソフトウェアの一つです。 主に、タンパク質–リガンドのドッキングに利用されています。 2009年からオープンソース・ソフトウェアとなり、非商業的利用に関しては、無料で使用できます。 AutoDockは、過去には、HIV-1インテグラーゼ阻害剤の開発においても活用されました。

AutoDock Vinaは、 Oleg Trott 博士 (The Scripps Research Institute)らによって提供された、 AutoDock4の改良型ドッキングツール(AutoDockの後継)です。 Vinaの登場によって、計算の速度、ドッキング精度ともに大幅に改善されました。

原著論文 - AutoDock Vina -

AutoDock Vinaに関する原著論文は以下の2報となります。

  1. "J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli. (2021). AutoDock Vina 1.2.0: New Docking Methods, Expanded Force Field, and Python Bindings. Journal of Chemical Information and Modeling."

  2. "O. Trott and A. J. Olson. (2010). AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient optimization, and multithreading. Journal of computational chemistry, 31(2), 455-461."

今回やること

M1チップ搭載の MacBook Airで、AutoDock Vina (ver 1.2.2)をセットアップしてみました。 その方法を、設定方法とともに、具体的なコマンドを説明しています。

今回、AutoDock Vinaは、ARM用のバージョンである「vina_1.2.2_macos_arm64」を使用しています。

brewの設定

まずは、Homebrewを設定します。

まだ設定されていない場合は、 過去の記事を参考に設定してください。

skume.net

brewコマンドを用いたパッケージのセットアップ

Macのターミナルを起動して、 所定のライブラリをbrewコマンドでインストールしていきます。

今回、インストールするのは、 boost、wget、gitのライブラリです。

#boostのインストール
brew install boost 

#wgetのインストール
brew install wget

#gitのインストール
brew install git

Autodock Vina 1.2.2のセットアップ

それでは、「Autodock Vina 1.2.2」のセットアップに入っていきます。 ここでは、wgetで「Autodock Vina 1.2.2」をダウンロードして、諸設定を行なっていきます。

#ダウンロード
wget https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.2/
vina_1.2.2_macos_arm64

#名前の変更
mv vina_1.2.2_macos_arm64 vina

#実行権限の付与
chmod +x vina

#vinaを任意のフォルダに移動させる
#/opt/homebrew/bin とか、すでにパスが通っているところがよい
mv vina /opt/homebrew/bin 

#パスの確認
which vina
#/opt/homebrew/bin/vina

「vina」のパス設定が完了して、「which」コマンドで確認できたらOKです。

ここまで設定できたら、ヘルプが表示されるかどうかも確認してみます。 以下の-helpオプションで、ヘルプが表示されるはずです。

#ヘルプ表示
vina -help

#AutoDock Vina v1.2.2-22-gb5f8dc1-mod
#Command line parse error: unrecognised option '-help'
#
#Correct usage:
#
#Input:
#  --receptor arg             rigid part of the receptor (PDBQT)
#  --flex arg                 flexible side chains, if any (PDBQT)
#  --ligand arg               ligand (PDBQT)
#  --batch arg                batch ligand (PDBQT)
#  --scoring arg (=vina)      scoring function (ad4, vina or vinardo)
#
#Search space (required):
#  --maps arg                 affinity maps for the autodock4.2 (ad4) or vina 
#                             scoring function
#  --center_x arg             X coordinate of the center (Angstrom)
#  --center_y arg             Y coordinate of the center (Angstrom)
#  --center_z arg             Z coordinate of the center (Angstrom)
#  --size_x arg               size in the X dimension (Angstrom)
#  --size_y arg               size in the Y dimension (Angstrom)
#  --size_z arg               size in the Z dimension (Angstrom)
#  --autobox                  set maps dimensions based on input ligand(s) (for 
#                             --score_only and --local_only)
#
#Output (optional):
#  --out arg                  output models (PDBQT), the default is chosen based
#                             on the ligand file name
#  --dir arg                  output directory for batch mode
#  --write_maps arg           output filename (directory + prefix name) for 
#                             maps. Option --force_even_voxels may be needed to 
#                             comply with .map format
#
#Misc (optional):
#  --cpu arg (=0)             the number of CPUs to use (the default is to try 
#                             to detect the number of CPUs or, failing that, use
#                             1)
#  --seed arg (=0)            explicit random seed
#  --exhaustiveness arg (=8)  exhaustiveness of the global search (roughly 
#                             proportional to time): 1+
#  --max_evals arg (=0)       number of evaluations in each MC run (if zero, 
#                             which is the default, the number of MC steps is 
#                             based on heuristics)
#  --num_modes arg (=9)       maximum number of binding modes to generate
#  --min_rmsd arg (=1)        minimum RMSD between output poses
#  --energy_range arg (=3)    maximum energy difference between the best binding
#                             mode and the worst one displayed (kcal/mol)
#  --spacing arg (=0.375)     grid spacing (Angstrom)
#  --verbosity arg (=1)       verbosity (0=no output, 1=normal, 2=verbose)
#
#Configuration file (optional):
#  --config arg               the above options can be put here
#
#Information (optional):
#  --help                     display usage summary
#  --help_advanced            display usage summary with advanced options
#  --version                  display program version

これで、初めの設定は完了です。

AutoDock Vinaのチュートリアル「basic_docking」を実行してみる

次に、GitHubにあるAutodock Vinaのリポジトリをダンロードして、 そのチュートリアルのデータで動作検証をしてみます。

以下のgit cloneコマンドで、リポジトリを取得します。

git clone https://github.com/ccsb-scripps/AutoDock-Vina.git

今回は、exampleフォルダ内のbasic_dockingをサンプルとして試してみます。

このドッキングシミュレーションのbasic_dockingのサンプルは、 典型的な使用パターンで、剛体モデルの受容体に1つの分子をドッキングすることを行います。 具体的には、非受容体型チロシンキナーゼ c-Abl の立体構造に、 抗がん剤イマチニブ(Gleevec、PDB entry: 1iep)を AutoDock Vinaを使用してドッキング実行を行います。

c-Ablは、癌原遺伝子チロシンプロテインキナーゼで、 このタンパク質は、がん化学療法、特に慢性骨髄性白血病の治療において重要な標的です。

それでは、Vinaの実行を試しますが、問題なく設定できていれば、 下記の2コマンドで、Dockingが実行されて、結果が表示されます。

#ダウンロードしたディレクト内に移動します
cd ./AutoDock-Vina/example/basic_docking/solution  

#vina実行
vina  \
    --receptor 1iep_receptor.pdbqt \
    --ligand 1iep_ligand.pdbqt \
        --config 1iep_receptor_vina_box.txt \
        --exhaustiveness=32 \
        --out 1iep_ligand_vina_out.pdbqt

--receptorには、受容体タンパク質のpdbqtファイル名を指定します。 --ligandには、リガンド(主に低分子化合物)のpdbqtファイル名を指定します。 --configには、引数として与えていない条件設定をテキストファイルとして指定します。 --exhaustivenessには、グローバル探索の網羅性を指定します(32が良いようです)。 --outには、出力ファイル名を指定します。

実行時のコンソール表示

実行結果は、以下のような感じになります。

AutoDock Vina v1.2.2-22-gb5f8dc1-mod
#################################################################
# If you used AutoDock Vina in your work, please cite:          #
#                                                               #
# J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli  #
# AutoDock Vina 1.2.0: New Docking Methods, Expanded Force      #
# Field, and Python Bindings, J. Chem. Inf. Model. (2021)       #
# DOI 10.1021/acs.jcim.1c00203                                  #
#                                                               #
# O. Trott, A. J. Olson,                                        #
# AutoDock Vina: improving the speed and accuracy of docking    #
# with a new scoring function, efficient optimization and       #
# multithreading, J. Comp. Chem. (2010)                         #
# DOI 10.1002/jcc.21334                                         #
#                                                               #
# Please see https://github.com/ccsb-scripps/AutoDock-Vina for  #
# more information.                                             #
#################################################################

Scoring function : vina
Rigid receptor: 1iep_receptor.pdbqt
Ligand: 1iep_ligand.pdbqt
Grid center: X 15.19 Y 53.903 Z 16.917
Grid size  : X 20 Y 20 Z 20
Grid space : 0.375
Exhaustiveness: 32
CPU: 0
Verbosity: 1

Computing Vina grid ... done.
Performing docking (random seed: -885801442) ... 
0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************

mode |   affinity | dist from best mode
     | (kcal/mol) | rmsd l.b.| rmsd u.b.
-----+------------+----------+----------
   1       -13.38          0          0
   2        -11.4      2.993      12.41
   3        -11.4      1.658      2.053
   4       -11.15      3.869      12.31
   5       -10.76      2.544      12.64
   6        -10.1      1.988      13.73
   7       -9.774      1.706      13.63
   8       -9.695      2.683      12.64
   9       -9.494      2.834       12.4       

出力ファイルの結果表示

ここでは、1iep_ligand_vina_out.pdbqtとういうファイルに、 構造データとBinding eneryなどの結果を出力されています。

#先頭20行を表示
head -n 20 1iep_ligand_vina_out.pdbqt

#MODEL 1
#REMARK VINA RESULT:   -13.057      0.000      0.000
#REMARK INTER + INTRA:         -19.158
#REMARK INTER:                 -18.700
#REMARK INTRA:                  -0.458
#REMARK UNBOUND:                -0.757
#REMARK Flexibility Score: inf
#REMARK Active torsions [ 7 ] -> [ 7 ]
#ROOT
#ATOM      1  C1  LIG L   1      15.834  54.718  12.393  1.00  0.00     0.038 A 
#ATOM      2  C2  LIG L   1      16.908  54.561  11.405  1.00  0.00    -0.029 A 
#ATOM      3  C3  LIG L   1      17.891  53.541  11.628  1.00  0.00     0.007 A 
#ATOM      4  C4  LIG L   1      17.820  52.693  12.792  1.00  0.00     0.024 A 
#ATOM      5  C5  LIG L   1      16.777  52.840  13.752  1.00  0.00     0.035 A 
#ATOM      6  C6  LIG L   1      15.778  53.874  13.532  1.00  0.00     0.047 A 
#ATOM      7  C7  LIG L   1      17.030  55.437  10.136  1.00  0.00     0.045 C 
#ENDROOT
#BRANCH    1    8
#ATOM      8  N1  LIG L   1      14.849  55.695  12.232  1.00  0.00    -0.283 N 
#ATOM      9  H1  LIG L   1      13.972  55.445  11.860  1.00  0.00     0.155 HD

まとめ

(結構、詳細は省いているが)AutoDock Vinaのセットアップから、Dockingシミュレーションまでの実行方法を紹介しました。

AutoDOck Vinaは、M1 Macでも、意外にもサクッと実行できるという良いソフトウェアでした。

参考資料

skume.net

AutoDock Vina

autodock-vina.readthedocs.io

github.com

github.com

【Rのジミ〜な小技シリーズ】変数で、データフレームに「任意の列名」を追加するTips

f:id:skume:20220131004959p:plain

はじめに

pasteなどで連結して作成した文字列をもとにして、それらをデータフレームの列名にしたい。 そういうケースがよくあるのです。

食わず嫌い的に試して無かったけど、「えっ、これできるの?!」という感じなことが起こったようです・・・。 文字列の変数で、データフレームの列名を複数追加できることがわかったので、それをメモしておきます。 R歴 約10年、まだまだ奥が深い。

test <- data.frame(a=1:3, b=4:6, c="abc")
test
#  a b   c
#1 1 4 abc
#2 2 5 abc
#3 3 6 abc

#よくやる列追加のやり方
test$d <- 7:9
test
#  a b   c d
#1 1 4 abc 7
#2 2 5 abc 8
#3 3 6 abc 9

次に、文字列の変数で、データフレームの列名を追加してみます。

#任意の文字列を作成して、列名にする
col01 <- paste0("X", "01")
#[1] "X01"
  
test[,col01] <- NA
test
#  a b   c X01
#1 1 4 abc  NA
#2 2 5 abc  NA
#3 3 6 abc  NA

#複数の任意の文字列を作成して、列名にする
col02 <- paste0("X", c("02", "03", "04"))
col02
#[1] "X02" "X03" "X04"

test[,col02] <- NA
test
#  a b   c d X01 X02 X03 X04
#1 1 4 abc 7  NA  NA  NA  NA
#2 2 5 abc 8  NA  NA  NA  NA
#3 3 6 abc 9  NA  NA  NA  NA

上記の実行コードで、"X02" "X03" "X04"という列名が一気に追加されました。 なかなか秀逸と思います。

【Rのジミ〜な小技シリーズ】エクセルデータをクリップボードにコピーして、Rのread.table関数でデータフレームとして読み込むTips

f:id:skume:20220120225925p:plain

はじめに

今までほぼやってなかったけど、さっき使ってみて思いの外、便利でよかったです。 今後はこれを使いたいと強いメッセージを込めて、これのみでメモっておきます。

まずは、Macでエクセルを起動します。 文字や数字が書かれた、エクセルの任意のセルを選択して、command + c でコピーします。

Rを起動して、以下のコマンドを打てば*1クリップボードからデータのインポートができます

ただ、以下のコード実行前に、command + c をもう一度打たないこと。 コピーしたデータがクリップボードから消えます。癖で打ってしまいそうになりますけど。。。

コピーしたセルがヘッダーを含む場合

Data <- read.table(pipe("pbpaste"), header=T, stringsAsFactors = F)
Data

# OR

Data <- read.table(pipe("pbpaste"), sep="\t", header=T, stringsAsFactors = F)
Data

コピーしたセルがヘッダーを含まない場合

Data <- read.table(pipe("pbpaste"), header=F, stringsAsFactors = F)
Data

# OR

Data <- read.table(pipe("pbpaste"), sep="\t", header=F, stringsAsFactors = F)
Data

追記(2020年6月10日)

実際に、クリップボードからR上にインポートして、 データフレームをBlog用のマークダウンなどでテーブル出力するのをやってみました。

エクセルで、以下の画像のようにセルをcommand + c でコピーしてみます。

f:id:skume:20200610162314p:plain:w350

エクセルを閉じずに、そのまま、以下のRコードを実行します。

if(!require("knitr")){install.packages("knitr")}; library(knitr)

Data <- read.table(pipe("pbpaste"), header=T, stringsAsFactors = F)

Data
#  A B  C  D
#1 1 2  3  4
#2 1 3  5  7
#3 2 5  8 11
#4 3 6  9 12
#5 4 7 10 13

#マークダウン出力
kable(Data, format = "markdown")

#|  A|  B|  C|  D|
#|--:|--:|--:|--:|
#|  1|  2|  3|  4|
#|  1|  3|  5|  7|
#|  2|  5|  8| 11|
#|  3|  6|  9| 12|
#|  4|  7| 10| 13|

#Latex出力
kable(Data, format = "latex")

#\begin{tabular}{r|r|r|r}
#\hline
#A & B & C & D\\
#\hline
#1 & 2 & 3 & 4\\
#\hline
#1 & 3 & 5 & 7\\
#\hline
#2 & 5 & 8 & 11\\
#\hline
#3 & 6 & 9 & 12\\
#\hline
#4 & 7 & 10 & 13\\
#\hline
#\end{tabular}

#Pandoc出力
kable(Data, format = "pandoc")

#  A    B    C    D
#---  ---  ---  ---
#  1    2    3    4
#  1    3    5    7
#  2    5    8   11
#  3    6    9   12
#  4    7   10   13

参考資料

http://marcoghislanzoni.com/blog/2013/10/27/import-data-r-mac-os-x-clipboard/marcoghislanzoni.com

riseki.php.xdomain.jp

*1:R4.0以降は大丈夫だが、 stringsAsFactors = F は念のためいれておくこと