Windows マシンで、R からクリップボードにデータを直接コピーしようとしています。いくつかのサイトで、file="clipboard" を使用すると機能すると知りました。実際に機能していますが、データセットが非常に小さい場合です。
例えば:
小さなデータセット(100 obs)をコピーすると、スムーズに動作します。
df1 <- data.frame(x=runif(100))
write.table(df1, file="clipboard", sep="\t", col.names=NA)
しかし、観測数を 10,000 に増やすと失敗します。
df1 <- data.frame(x=runif(10000))
write.table(df1, file="clipboard", sep="\t", col.names=NA)
エラーは次のとおりです:
警告メッセージ: .External2(C_writetable, x, file, nrow(x), p, r
これに対する回避策はありますか?
ベストアンサー1
入力すると?connections
答えが見つかります。
関連する部分は次のとおりです。
「クリップボードに書き込む場合、出力は接続が閉じられるかフラッシュされたときにのみクリップボードにコピーされます。クリップボードに書き込まれるテキストには 32Kb の制限があります。これは、たとえば file("clipboard-128") を使用して 128Kb を指定することで増やすことができます。」
したがって、解決策は非常に簡単です。
df1 <- data.frame(x=runif(10000))
write.table(df1, file="clipboard-16384", sep="\t", col.names=NA)
Kb の数は単なる例なので、必要に応じて変更できます (データ セットには十分な 2^14 を設定しましたが、さらに増やすこともできます。ただし、どれがハード リミットかはわかりません。物理メモリでしょうか?)