【发布时间】:2013-06-11 18:28:39
【问题描述】:
我正在使用 SQL 从SQL Server 获取数据并在R 中处理它。我可以使用任何一个来解决我的问题。
这是我的数据:
structure(list(id = c(1, 2, 3, 1, 2), FY = c(2010, 2008, 2009, 2011, 2009), sales = c(100, 200, 300, 400, 500)), .Names = c("id", "FY", "sales"), row.names = c(NA, -5L), class = "data.frame")
我称之为测试
id FY sales
1 2010 100
2 2008 200
3 2009 300
1 2011 400
2 2009 500
编辑:我想找到的是客户保留率,即谁在 2008 年和 2009 年购买;谁在 2009 年和 2010 年购买过;谁在 2010 年和 2011 年购买。
最终结果网格将在保留客户的年份中输入 1 或非空值。
我试图得到的最终结果将如下所示:
id 2008 2009 2010 2011
1 1
2 1
使用这种类型的表格,我可以计算每年的保留百分比。
现在,我可以编写各种 CASE 语句和子查询来创建这样的网格,但是我的实际数据已经超过 10 年了,我讨厌这些年来硬编码。也许,一旦数据为cast,在R 中执行此操作会更容易,但我很难对此进行编码。
【问题讨论】:
-
@shujaa 嗯。我不想说当没有匹配项时我想要零,即使 NA 或 Null 也可以。