【问题标题】:R Simplifying dataR 简化数据
【发布时间】:2015-02-15 07:48:57
【问题描述】:

我有一个包含两列数据的 csv,我想在其中绘制两条线来比较值的差异。但是,在生成数据时,我想要一个大样本量,因此该文件包含一百万个条目。在我对 R 绘图渲染的无知中,我决定读入所有数据,然后绘制百万点线。

我已经回答了几个问题,但没有看到任何完全符合我需要的问题。另外,我目前正在尝试从Introduction to data cleaning with R 收集信息,但难以理解。

我想做的是在我的数据中使用每 10 行中的一个,并将其用作要绘制的数据(100k 项应该比 1M 项好得多,对吧?)。最好的方法是什么。这实际上是简化数据的最佳方法吗?我的方法有更好的替代方案吗?

样本数据:

OptionA, OptionB
1,0,
23,0,
4,0,
5,1,
20091,0,

【问题讨论】:

  • 如果您提供一小部分数据样本以及您要运行的代码,会更容易为您提供帮助。首先,如果您的数据框是 df,并且您想随机抽取 10% 的行:df[sample(1:nrow(df), floor(nrow(df)/10)),]。
  • @eipi10 在示例数据中添加,但对于代码,我不知道具体如何运行它,这就是为什么我说“我在这里查看了这些问题,并在此 pdf 中开始使用,但还是有点糊涂”
  • 例如,plot(df[sample(1:nrow(df), floor(nrow(df)/10)),c("OptionA","OptionB")]) 将随机绘制 10% 的数据。
  • @eipi10 啊,这很有意义。对 R 来说还是很陌生,出于某种原因想不出sample 这个词。

标签: r ggplot2 data-cleaning


【解决方案1】:

在 R 中有更好的方法来做到这一点(谷歌 sample 函数),但要获取每 10 行,假设您的数据被称为 data:

data[(1:100000)*10,]

就这么简单。 1:10000 生成从 1 到 100000 的数字列表。然后将这些数字乘以 10,得到 10、20、... 1000000。这些是行,, 后面没有任何内容表示所有列。所以你最终得到每 10 行和所有列。

我希望这会有所帮助。

【讨论】:

  • 好的,这很有帮助 sample 是我要找的词。
  • 或df[seq(from = 1, to = nrow(df), by = 10),]
猜你喜欢
  • 1970-01-01
  • 2020-11-11
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
  • 2022-01-03
相关资源
最近更新 更多