R:如何写出一个data.frame,以便我可以将其粘贴到SO中供其他人阅读?

时间:2010-04-13 22:16:01

标签: r dataframe

我有一个大的data.frame,在绘制时会显示一些奇怪的属性。我想在Stackoverflow上问一个关于它的问题,为此,我想以一种形式编写data.frame,我可以将其粘贴到SO中,而其他人可以轻松地运行它并将其重新放入data.frame对象再次。有没有一种简单的方法来实现这一目标?另外,如果它真的很长,我应该使用粘贴箱而不是直接粘贴在这里吗?

4 个答案:

答案 0 :(得分:4)

要直接回答您的问题,最简单的方法是使用summary()head()来显示有关数据框的信息。我建议不要将实际数据粘贴到SO问题中,而是提供公共链接以供社区使用。如果您还没有看到它,box.net服务为在线协作提供了大量的可用空间。

最后,如果数据在绘制时表现出奇怪的行为,为什么不提供用于绘制图表的代码和一些示例图。

答案 1 :(得分:2)

首先,德鲁的想法非常好。

此外,如果您减少数据并隔离“怪异”部分,则使用dput()。这是允许其他人加载它的最直接的方式。虽然您需要先将数据减少到合理的数量。

否则将其作为csv文件发布在可通过http访问的位置,人们可以直接使用read.csv读取该文件。虽然要求人们帮助您处理非常大的数据集是不合理的。

最后,请查看此问题的答案:How do I load example datasets in R?

答案 2 :(得分:1)

这是一个很好的问题。

这是我尝试回答 - 以建议的形式提出更好的问题,而不是提出问题所附的数据。我可能违反了以下这些建议中的每一条,但至少我将来会提到一些内容,也许它对其他人也有用。

首先,我怀疑提出问题的人更喜欢答案

  • 有足够的抽象,以便在 未来他们可以解决一般问题 一类问题 当前问题属于;以及

  • 有足够的实践指导 (通常这意味着实际的R代码) 实际上解决了问题 就在我们面前。

再次:你的问题中的抽象(通常)导致答案中的抽象,这意味着一个更有用的答案,但也增加了你实际得到一个可接受的答案的可能性 - 社区不太可能看到确切的答案以前的数据集;这里的人更有可能认出一种模式。但是这种模式可能会被太多的数据所掩盖。

第二,充分解释问题所需的数据量并不重要 - 重要的是人们试图回答问题需要多长时间才能将数据输入他们的R环境。基本R分布中提供的数据集为50,000行 - 无关紧要,因为我可以通过几次击键将数据导入R.更重要的是,如果您可以参考其中一个数据集,那么您就不必在问题窗口中剪切和粘贴内容。相比之下,我真的试图避免强迫人们从SO页面中删除几行数据,以便他们能够正确理解我的问题(除了Dirk,他在脑海中进行计算。)

第三次,剪切并粘贴问题(所有列)中数据集的整个宽度,除非绝对需要它只是懒惰。数据很少能代替简洁的问题描述。我希望OP花费一两分钟来修剪他们的实际数据集,这样他们就不会提供比说明问题实际需要的数据更多的数据。

第四,如果数据可以通过公式或算法“提供”,那么只需提供。例如,如果一个问题与随机游走有关,我们不需要数据,只需说“随机游走”,这里几乎每个人都能用一小段代码生成数据。

答案 3 :(得分:0)

dump在数据框不是很大时效果很好。