library(reshape2) # or you could use data.table's dcast function
dcast(df, ID + Zoo ~ Last_date)
# ID Zoo Feb_2018 Jan_2018 Nov_2017 Oct_2017
# 1 ABC-DEF DENVER 0 0 3 2
# 2 HG-IJK MEMPHIS 0 1 0 0
# 3 JK-LMO MEMPHIS 1 0 0 0
这给出了关于不指定值var或聚合函数的警告。为了避免警告,你可以更冗长些。
dcast(df, ID + Zoo ~ Last_date, value.var = 'Last_date', length)
数据使用
df <- data.table::fread("
ID Zoo Last_date
ABC-DEF DENVER Oct_2017
ABC-DEF DENVER Oct_2017
ABC-DEF DENVER Nov_2017
ABC-DEF DENVER Nov_2017
ABC-DEF DENVER Nov_2017
HG-IJK MEMPHIS Jan_2018
JK-LMO MEMPHIS Feb_2018
")