【问题标题】:how do i subset many variable in R?我如何对 R 中的许多变量进行子集化?
【发布时间】:2022-02-06 19:02:09
【问题描述】:

我想问我如何从 5k 变量中提取许多数据。

我有一个 500k 的数据框,数据是杂货数据(超市)。我想对所有收据 ID 进行子集化,但 ID 太多(大约 24,5 k)。我想 ro 找到每个收据的总价格。我如何在不手动输入的情况下对这些 ID 进行子集化?

我使用的数据: this is my data looks like 我想对所有 InvoiceID 进行子集化并计算每个价格。然后我想将其转换为数据框。

我已经尝试使用“for”函数,但它一直在循环。我还在 R 中使用 dplyr

我使用的代码:

test = data %>%
  group_by(InvoiceNo)%>%
  dplyr::summarise(n= n())

bon = test$InvoiceNo

result = for (i in bon){
  data = subset(data, subset = InvoiceNo == i)
  print(sum(data$Price_Total))
}

test =  data.frame("test" = bon,
                   "wiw" = result)

我想从每个收据的总数中绘制一个图。 我应该如何对其进行子集化?或者我应该使用什么包? 谢谢你

【问题讨论】:

  • 您可以使用split,即split(data, data$InvoiceNo)
  • 好的,我已经尝试过了。谢谢你的帮助。还有其他方法可以对其进行子集化吗??
  • 你好!正如您已经提到的,您的数据非常大,您可以下次提供 dput 的头部。

标签: r dplyr subset subset-sum


【解决方案1】:

group_by(InvoiceNo) %>% summarize() 让您走在正确的轨道上。由于您想在每个 InvoiceNo 中总结价格,您只需将其放在对 summarize() 的调用中:

test = data %>%
  group_by(InvoiceNo)%>%
  summarise(Price_Total = sum(Price_Total))

【讨论】:

  • 你好,我已经尝试过了。谢谢你的回答。我尝试了一下,我找到了新的方法来总结它。我想计算每个收据的总数,也许可以用它制作一个箱形图。抱歉,我忘了在问题中添加“每个”,但这是一个很好的回答者。谢谢你
  • 是的,我提供的代码将为您提供每张收据的总数。然后您可以将结果传递给 ggplot 以获得箱线图:ggplot(test) + geom_boxplot(aes(Price_Total))
  • 我尝试了代码,但箱线图没有出来。 test 是 df 1x1。箱线图没有出来……
  • 只运行我提供的代码——不要将它与你的原始代码结合起来。如果这不起作用,请使用您的数据(使用 dput() 或 reprex 包)和输出更新您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多