r - 如何过滤行(事务中的更正) - R
问题描述
我有一个交易数据集(UCI 机器学习存储库中的在线零售)。在数据集中,我们有一些交易(1 个交易 = 1 行)及其更正(具有不同 InvoiceCode 和负数量的同一行)。
例子:
我试过了:
Transactions <- data3[duplicated(data3[,c(data3$StockCode, data3$Description, data3$UnitPrice data3$CustomerID, data3$Country)])]
但是代码没有像我预期的那样工作。谁能建议我怎么做?谢谢你。
链接到原始数据集:http: //archive.ics.uci.edu/ml/datasets/online+retail
解决方案
如果您想过滤掉所有更正,那么您应该删除所有值为 的记录Quantity < 0
:
df <- data.frame(InvoiceNo=c("C551685","551697"),
StockCode=c("POST","POST"),
Description=c("POSTAGE","POSTAGE"),
Quantity=c(-1,1),
InvoiceDate=c("5/3/2011 12:51","5/3/2011 13:46"),
UnitPrice=c(8142.75,8142.75),
CustomerID=c(16029,16029),
Country=c("United Kingdom", "United Kingdom"),
stringsAsFactors=F)
df
# InvoiceNo StockCode Description Quantity InvoiceDate UnitPrice CustomerID Country
#1 C551685 POST POSTAGE -1 5/3/2011 12:51 8142.75 16029 United Kingdom
#2 551697 POST POSTAGE 1 5/3/2011 13:46 8142.75 16029 United Kingdom
#Filter out all corrections:
df[df$Quantity < 0, ]
# InvoiceNo StockCode Description Quantity InvoiceDate UnitPrice CustomerID Country
#1 C551685 POST POSTAGE -1 5/3/2011 12:51 8142.75 16029 United Kingdom
如果要删除所有交易,则:
#Filter out all transactions:
df[df$Quantity > 0, ]
# InvoiceNo StockCode Description Quantity InvoiceDate UnitPrice CustomerID Country
#2 551697 POST POSTAGE 1 5/3/2011 13:46 8142.75 16029 United Kingdom
推荐阅读
- java - Spring Boot中使用HSQLDB时获取数据库锁失败
- python-3.x - 不同人的上次访问时间间隔
- sparql - 根据部分名称匹配检索 Wikidata ID 候选者
- mysql - Google CloudSQL 上的全局变量 explicit_defaults_for_timestamp
- python - 它如何将列表中的结果保存到 .txt 文件中?
- c# - WPF C# - DataGrid 单元格中的多个 CheckBox 控件
- c# - Powershell.Create 在调试时返回 null
- javascript - 如何在摩纳哥编辑器中设置多行规则
- python - 连接具有重复行的单元格
- amazon-web-services - 连接到 AWS ClientVPN 时,RDS 实例解析为公共 IP 地址