【问题标题】:Aggregate Remove and De-aggregate聚合删除和解聚合
【发布时间】:2018-04-16 08:32:44
【问题描述】:

我想对客户编号的几个变量求和,然后排除总和为 0 的变量,因为 X1 可以是正数和负数。排除它们后,我想再次“分解”它,这可能吗?

AggData <- aggregate(cbind(X1, X2, X3, X4, X4, X5, X6, X7)~ CustomerNumber + 
Date + Accountnumber, mydata, sum)
ClearedData <- AggData[mydata$X1!=0,]

此外,我想创建一个新变量来计算日期并测量重复率,你能帮我吗?

【问题讨论】:

  • 如果你想排除总和为零的行,我认为你需要ClearedData &lt;- AggData[AggData$X1!=0,]。然后您需要使用ClearedData 中的类别从mydata 中进行选择。
  • 您能否提供代码来制作代表您的数据的(虚拟)数据
  • 也将其分为两个问题 - 两个部分(聚合/分解和日期计数)是不相关的。

标签: r count aggregate data-cleaning


【解决方案1】:

要回答您的第一个(“聚合和去聚合”)问题(这两个问题不相关,将它们分成两个单独的问题更合适,请在一个帖子中提出不相关的问题)。

从外观上看,您有 7 列的数据,其中包含可以是正数或负数的数值,以及包含客户编号等的列。一些虚拟数据:

df1 <- data.frame(matrix(sample(c(-5:5), size = 70, replace = T), ncol = 7))
df1$CN <- LETTERS[1:10]

您希望对各行的值求和,并排除 sum = 0 的行。为此,请使用 applysubset

df1$SUM <- apply(df1[,1:7], 1, sum)
subset(df1, df1$SUM != 0)

【讨论】:

    猜你喜欢
    • 2015-07-26
    • 2011-03-07
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多