提问人:Andrew Kfoury 提问时间:5/12/2021 最后编辑:LimeyAndrew Kfoury 更新时间:5/12/2021 访问量:71
如何在 R 中计算列和,然后使用 data.table 库绘制它 [已关闭]
How to calculate column sums in R and then plot it using data.table library [closed]
问:
所以我的第一份工作是数据分析师,但是我的老板希望我使用这个包,但我遇到了一些问题。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
然后当然,我有一个看起来像完全垃圾的条形图:
答:
这里有两件事是错误的:
由于您要求 ,这是对表的不同实例的调用,因此总和将忽略分组。请改用,因为这指的是表的同一实例中的列。
sum(essentialReturnData$`Return quantity`)
by
sum(`Return grouping`)
table(returnsByProductName$`Product name`)
是产品名称的频率表,但每个名称只有一行。你根本没有使用!请改用。returnsByProductName
totalReturns
barplot(returnsByProductName$totalReturns, names.arg = returnsByProductName$`Product name`)
考虑到您拥有的产品数量,您将无法以一种很好的方式拟合轴上的所有名称。您可以执行一些操作,例如添加参数,该参数将传递给 x 轴标签并使 x 轴标签垂直。然而,这么多产品仍然会看起来很混乱,如果名字很长,那么它不会为情节本身留下太多空间,除非你让情节变得很大。las = 2
par()
评论
下一个:按值对变量进行分组,彼此为 %
评论
sum(essentialReturnData$`Return quantity`)
忽略分组,因为您要在表的不同实例中获取总和。请改用。by
sum(`Return quantity`)
barplot()