聚合中是否有一个函数可以计算列的非零元素
Is there a function in aggregate which can count nonzero elements of a column
我有一个数据集如下:
Date Hour ID
2014-01-01 0 0
2014-01-01 1 0
2014-01-01 10 0
2014-01-01 11 0
我有一个日期序列(2014 年的所有日期)和一天的 24 小时。如果 ID 为零,则表示在相应的日期和时间没有收到任何呼叫。我想汇总 24 小时内每个日期的结果和 return 一个新的数据框,其中包括日期和呼叫的客户总数。我只需要对 ID 进行汇总,并为此编写了以下代码行:
SampleData <- aggregate(ID ~ Date, SampleData, length)
然而,结果并不是我想要的。我需要计算聚合的非零 ID,但我不知道该怎么做。
您可以传递 aggregate
一个函数来计算每天具有非零 ID 的行数:
aggregate(ID~Date, data, function(x) sum(x != 0))
# Date ID
# 1 2014-01-01 2
# 2 2014-01-02 0
数据(已更新,因此它有两个非零 ID 和两天):
(data = read.table(text="Date Hour ID
2014-01-01 0 0
2014-01-01 1 1
2014-01-01 10 2
2014-01-02 11 0", header=T))
# Date Hour ID
# 1 2014-01-01 0 0
# 2 2014-01-01 1 1
# 3 2014-01-01 10 2
# 4 2014-01-02 11 0
我有一个数据集如下:
Date Hour ID
2014-01-01 0 0
2014-01-01 1 0
2014-01-01 10 0
2014-01-01 11 0
我有一个日期序列(2014 年的所有日期)和一天的 24 小时。如果 ID 为零,则表示在相应的日期和时间没有收到任何呼叫。我想汇总 24 小时内每个日期的结果和 return 一个新的数据框,其中包括日期和呼叫的客户总数。我只需要对 ID 进行汇总,并为此编写了以下代码行:
SampleData <- aggregate(ID ~ Date, SampleData, length)
然而,结果并不是我想要的。我需要计算聚合的非零 ID,但我不知道该怎么做。
您可以传递 aggregate
一个函数来计算每天具有非零 ID 的行数:
aggregate(ID~Date, data, function(x) sum(x != 0))
# Date ID
# 1 2014-01-01 2
# 2 2014-01-02 0
数据(已更新,因此它有两个非零 ID 和两天):
(data = read.table(text="Date Hour ID
2014-01-01 0 0
2014-01-01 1 1
2014-01-01 10 2
2014-01-02 11 0", header=T))
# Date Hour ID
# 1 2014-01-01 0 0
# 2 2014-01-01 1 1
# 3 2014-01-01 10 2
# 4 2014-01-02 11 0