【发布时间】:2014-05-09 09:57:12
【问题描述】:
我已经阅读了很多主题,并且认为我的问题以前没有被问过。我在 R 中有一个data.frame,与向客户展示的广告相关:.. 我有很多客户,8 种不同的产品.. 所以这只是一个示例
mydf <- data.frame(Cust = c(1, 1), age = c(24, 24),
state = c("NJ", "NJ"), Product = c(1, 1), cost = c(400, 410),
Time = c(35, 25), Purchased = c("N", "Y"))
mydf
# Cust age state Product cost Time Purchased
# 1 1 24 NJ 1 400 35 N
# 2 1 24 NJ 1 410 23 Y
我想把它改成这样......
Cust | age | state | Product | cost.1 | time.1 | purch.1 | cost.2 | time.2 | purch.2
1 | 24 | NJ | 1 | 400 | 35 | N | 410 | 23 | Y
我该怎么做?每个客户都有一些静态变量,例如年龄、状态和其他一些……然后是与呈现给给定客户的每个报价相关的详细信息、报价中的产品#、成本、时间,如果他们购买了它......我想把所有这些放在一条线上,让每个客户进行分析。
值得注意的是,产品数量最多为 7 个,但对于某些客户来说,它的范围是 1 到 7 个。
我没有要真正展示的示例代码。我曾尝试使用 aggregate 函数,但我不想聚合或做任何 SUM。我只是想做一些连接。研究表明cbind 和tapply 函数可能有用。
感谢您的帮助。我对 R 很陌生。
【问题讨论】:
-
也许是
dcast例如:cookbook-r.com/Manipulating_data/… -
现在看。感谢您的快速回复,并帮助我格式化问题,以便示例数据框易于阅读。
-
不幸的是,dcast 功能似乎在这里不起作用。它似乎是为了获取值并将它们转换为列标题。例如,它会为每个成本创建一个新列。
-
大多数人试图避免你正在尝试做的事情;拥有一个长数据表可以让 R 中的很多事情变得更容易。您预见到哪些功能或分析可以更容易地将所有内容放在一条线上?
-
我正在尝试进行回归分析,以找出促使人们购买给定产品的因素。是报价的数量,是否与他们看到的最后一个报价相关的某些条件,是否与他们购买的报价和之前的报价之间的时间有关?我想计算有关他们看到的不同优惠的各种统计数据,并且我还想确定每个客户的优惠之间的关系。在我看来,最简单的方法是先压缩成一行。
标签: r aggregate reshape tapply cbind