楼主: resoar
1752 9

[问答] 关于数据转化,请高手赐教! [推广有奖]

  • 0关注
  • 4粉丝

讲师

23%

还不是VIP/贵宾

-

威望
0
论坛币
12671 个
通用积分
42.4502
学术水平
16 点
热心指数
18 点
信用等级
16 点
经验
2497 点
帖子
258
精华
0
在线时间
602 小时
注册时间
2008-9-8
最后登录
2022-11-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近在学校R中的关联规则,发现一个问题。R的arules包要求的数据格式是:如下
               产品1   产品2   产品3  。。。产品99999,产品100000   
客户A:     1         0          1                             1             0
客户B:     0         0          1                             1             1
客户C:     1         0         0                              0             1
...
但实际数据库的数据是:

客户A: 产品1,产品3,产品99999
客户B:产品3,产品99999,产品100000;
客户C:产品1,产品100000;

请问,如何把实际数据转化为R要求的数据呢?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据转化 arules Rules 实际数据 数据格式 数据库 产品 如何 学校

沙发
deep2008 发表于 2014-4-11 12:58:38 |只看作者 |坛友微信交流群
用SAS 很容易转,用R 不知道。

使用道具

藤椅
resoar 发表于 2014-4-11 13:30:07 |只看作者 |坛友微信交流群
deep2008 发表于 2014-4-11 12:58
用SAS 很容易转,用R 不知道。
用SAS怎么转?每行的列数不相等的

使用道具

板凳
deep2008 发表于 2014-4-11 13:44:59 |只看作者 |坛友微信交流群
不相等也没关系。

使用道具

报纸
resoar 发表于 2014-4-11 14:14:39 |只看作者 |坛友微信交流群
已解决。

使用道具

地板
ywh19860616 发表于 2014-4-11 16:02:10 |只看作者 |坛友微信交流群
把利用R解决的答案贴出来,让我们学习下。
一份耕耘,一份收获。

使用道具

7
jmpamao 发表于 2014-4-12 16:25:49 |只看作者 |坛友微信交流群
ywh19860616 发表于 2014-4-11 16:02
把利用R解决的答案贴出来,让我们学习下。
这个靠 reshape2了
也想知道楼主的方法我改下不用list, 直接读取数据(读取“.txt")
  1. #列是否相同,无所谓,fill=T   填充""
复制代码
  1. dat=read.table(text="客户A,产品1,产品3,产品99999
  2. 客户B,产品3,产品99999,产品100000
  3. 客户C,产品1,产品100000",sep=",",fill=T)
  4. dat[dat==""]=NA

  5. dat_f <- melt(dat,id.vars="V1",na.rm=T)
  6. dat_d <- dcast(dat_f,V1~value)
  7. dat_d[,-1][!is.na(dat_d[,-1])]=1
  8. dat_d[,-1][is.na(dat_d[,-1])]=0
  9. dat_d
复制代码






使用道具

readline读入,然后暴力循环。

使用道具

9
jmpamao 发表于 2014-4-12 22:05:20 |只看作者 |坛友微信交流群
淘宝网橙迷橙橙 发表于 2014-4-12 21:37
readline读入,然后暴力循环。
首先呢, 看了 你的 淘宝品牌  橙迷,  衣服 干练,简约,懂生活。  女模特,有型很酷,值得大家瞧一瞧。

另外,readline, 暴力循环, 橙迷橙橙 掌柜,把代码写出来 暴力一下撒。

使用道具

10
ywh19860616 发表于 2014-4-13 05:21:09 |只看作者 |坛友微信交流群
jmpamao 发表于 2014-4-12 16:25
这个靠 reshape2了
也想知道楼主的方法我改下不用list, 直接读取数据(读取“.txt")
赞!
知道reshape2里面的两大函数是wide to long和long to wide,
真正自己来用的时候就想不到了。每次看到各种好的代码,如各种unlist,
paste组合,基本能看懂,自己写的时候就木有思路,这就是我现在的节奏啊。
求指导哈,怎么能灵活运用这些函数。


我写了一个简化的Stata版代码
  1. clear
  2. input v1  v2  v3
  3. 1 3 5
  4. 3 4 6
  5. 1 2 .
  6. end
  7. xpose,clear
  8. stack v1 v2 v3,into(vv) clear
  9. list
  10. drop if vv==.
  11. contract _stack vv
  12. reshape wide _freq , i(_stack) j(vv)
  13. mvencode _all, mv(0)
  14. list
复制代码
已有 1 人评分热心指数 收起 理由
jmpamao + 1 靠意念~lol

总评分: 热心指数 + 1   查看全部评分

一份耕耘,一份收获。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-9 15:13