如何在 R 中计算列和,然后使用 data.table 库绘制它 [已关闭]

How to calculate column sums in R and then plot it using data.table library [closed]

提问人:Andrew Kfoury 提问时间:5/12/2021 最后编辑:LimeyAndrew Kfoury 更新时间:5/12/2021 访问量:71

问:


这个问题是由一个错别字或一个无法再重现的问题引起的。虽然类似的问题可能在这里成为主题,但这个问题的解决方式不太可能帮助未来的读者。

2年前关闭。

所以我的第一份工作是数据分析师,但是我的老板希望我使用这个包,但我遇到了一些问题。data.table

我的数据集是关于总购买量和退货量(客户退货)的电子商务商店。我想在条形图中可视化每个产品返回了多少个项目(我知道列名中有空格有点奇怪,我稍后会更改它),所以我的代码如下:Product name

library(shiny)
library(ggplot2)
library(data.table)
library(tidyverse)

mainTable <- fread('returnStats.csv')  

essentialReturnData <- mainTable[,c(7,9)]

returnsByProductName <- essentialReturnData[, 
                                            .(totalReturns = sum(essentialReturnData$`Return quantity`)), 
                                            by = 'Product name']

barplot(table(returnsByProductName$`Product name`)) 

但是,我只得到一个data.table,其总和值与下图中显示的所有s相同:Product name

enter image description here

然后当然,我有一个看起来像完全垃圾的条形图:

enter image description here

r data.table 数据操作

评论

0赞 Accidental Statistician 5/12/2021
sum(essentialReturnData$`Return quantity`)忽略分组,因为您要在表的不同实例中获取总和。请改用。bysum(`Return quantity`)
0赞 Andrew Kfoury 5/12/2021
谢谢!那奏效了!但是,关于如何改进我的可视化的任何想法?我想在 x 轴上显示产品名称,然后在 y 轴上显示返回量,当我使用该函数时,它返回一个非常糟糕的图barplot()
0赞 Accidental Statistician 5/12/2021
我不确定为什么它被关闭了。状态消息说问题不可重现,或者是由拼写错误引起的,而这两种情况都不是真的。

答:

1赞 Accidental Statistician 5/12/2021 #1

这里有两件事是错误的:

  1. 由于您要求 ,这是对表的不同实例的调用,因此总和将忽略分组。请改用,因为这指的是表的同一实例中的列。sum(essentialReturnData$`Return quantity`)bysum(`Return grouping`)

  2. table(returnsByProductName$`Product name`)是产品名称的频率表,但每个名称只有一行。你根本没有使用!请改用。returnsByProductNametotalReturnsbarplot(returnsByProductName$totalReturns, names.arg = returnsByProductName$`Product name`)

考虑到您拥有的产品数量,您将无法以一种很好的方式拟合轴上的所有名称。您可以执行一些操作,例如添加参数,该参数将传递给 x 轴标签并使 x 轴标签垂直。然而,这么多产品仍然会看起来很混乱,如果名字很长,那么它不会为情节本身留下太多空间,除非你让情节变得很大。las = 2par()

评论

0赞 Andrew Kfoury 5/12/2021
非常感谢你,不仅是你的回答,还有你的解释!现在一切都有意义了