パスワードを忘れた? アカウント作成
394065 journal

Mimiteruの日記: [R] ESS emacs on X11 - Excel間コピーペーストの件

日記 by Mimiteru
にわかR使いになったMimiteruです。コレイイ!
でも大人の事情でやっぱり出力はMS Officeです。
ときますと、MSを非難する流れですが、別にMicrosoftを非難することもないでしょう。
一般の人とやりとりするにはデータの可搬性が一番。仲良くすることで良いコミュニケーションが生まれるというものです。
それはともかく、MacでExcelとR(Carbon)本体間のコピー/ペーストは好き勝手できるんですが、X11上のemacsでESSを動かしているところに向けるとちょっと難しいです。できたりできなかったり。
ソースを失念しましたが、確実に受け渡すには、こんな感じで。
Excelコピー -> ESSへペーストは
pipe("pbpaste")から受ければOK。
たとえばこんな感じで使ってます。

pasteclip <- function()
{
read.table(pipe("pbpaste"),na.strings="#N/A",fill=T, blank.lines.skip = F)

}

ESSコピー -> Excelペーストは
pipe("pbcopy","w")に渡します。書き込みの場合はclose()しないとペーストされません。
たとえばこんな感じで関数を作って渡してます。

copyclip <- function(x)
{
zz <- pipe("pbcopy","w")
write.table(x,zz,sep="¥t",col.names=F,row.names=F,na="=NA()")
close(zz)
}

これを組み合わせて、Excelで表を作って
copyclip(hoge(pasteclip()))
とかしますと、Excelの分析ツールとか必要ないですよー状態とかできます。F検定T検定とか分散分析周りとか最小自乗法近似とか楽です。Rに処理をまわして欠損値回避できるのもグーです。

これがWindows上でですと
Excelコピー -> ESSへペーストは
read.table("clipboard",na.strings="#N/A",fill=T, blank.lines.skip = F)
ESSコピー -> Excelペーストは
write.table(x,"clipboard",sep="¥t",col.names=F,row.names=F,na="=NA()")
と "clipboard"に相互に渡せますけど。

ちなみにLinux上ではデータ整形とか体裁とかは結局ファイルを作ることになりますので、使う機会はあまりないかなーと。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...