请选择 进入手机版 | 继续访问电脑版
楼主: JLOGAN
2010 9

[学习分享] R属性处理 [推广有奖]

  • 3关注
  • 0粉丝

硕士生

16%

还不是VIP/贵宾

-

威望
0
论坛币
24 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2830 点
帖子
87
精华
0
在线时间
97 小时
注册时间
2016-5-28
最后登录
2018-8-4

JLOGAN 发表于 2016-9-18 22:42:28 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位前辈,在下目前遇到一个问题,不知怎么实现,跪求指教!根据第一个表得到第二个,每个id含有的转化为表2的形式,所有id含有的全都加进在第一行,然后每个id中出现的为1,不出现的为0.

1

A

1

B

1

C

1

D

1

C

2

E

2

D

2

S

2

A

3

A

3

S

3

D

3

F

4

G

5

J

5

V
转化成
ABCDEFGHSJV

1

1

1

1

1

0

0

0

0

0

0

0

2

1

0

1

0

1

0

0

0

1

0

0

3

1

0

0

1

0

1

0

0

1

0

0

4

0

0

0

0

0

0

1

0

0

0

0

5

0

0

0

0

0

0

0

0

0

1

1



二维码

扫码加我 拉你入群

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

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

关键词:ABCDEFG ABCD 跪求指教 求指教 fgh

千5320 发表于 2016-9-18 23:39:46 |显示全部楼层 |坛友微信交流群
楼主发帖的水平还是需要提高一个

使用道具

johnmy 发表于 2016-9-18 23:58:10 |显示全部楼层 |坛友微信交流群
第三行和第五行是重的,我去掉了其中一个。
> d
   num letter id
1    1      A  1
2    1      B  1
3    1      C  1
4    1      D  1
6    2      E  2
7    2      D  2
8    2      S  2
9    2      A  2
10   3      A  3
11   3      S  3
12   3      D  3
13   3      F  3
14   4      G  4
15   5      J  5
16   5      V  5

使用道具

johnmy 发表于 2016-9-19 00:02:43 |显示全部楼层 |坛友微信交流群
  1. library(dplyr)
  2. e<-spread(d,key=letter,value = num,fill = 0)
  3. f<-e[-1]
  4. f[f!=0]<-1
  5. cbind(e$id,f)
复制代码
已有 1 人评分经验 收起 理由
李会超 + 40 热心帮助其他会员

总评分: 经验 + 40   查看全部评分

使用道具

JLOGAN 发表于 2016-9-19 16:12:33 |显示全部楼层 |坛友微信交流群
johnmy 发表于 2016-9-18 23:58
第三行和第五行是重的,我去掉了其中一个。
> d
   num letter id
谢谢您!我想提一个新问题,如果数据是按照如下形式给出
id        attr
1        [A][B][C]
2        [D][E][F][S]
3        [W][D]
4        [P]
5        [J][C]
还是同样形式的结果该如何实现呢?

使用道具

JLOGAN 发表于 2016-9-19 16:13:42 |显示全部楼层 |坛友微信交流群
千5320 发表于 2016-9-18 23:39
楼主发帖的水平还是需要提高一个
谢谢提醒,希望多多给出建议

使用道具

johnmy 发表于 2016-9-19 16:32:20 |显示全部楼层 |坛友微信交流群
JLOGAN 发表于 2016-9-19 16:12
谢谢您!我想提一个新问题,如果数据是按照如下形式给出
id        attr
1        [A][C]
学习一下tidyr和dplyr包吧。
很有用。
你的例子估计要先用]作为分界把字符拆开,再替换了不需要的。或是先把[]替换再拆分,然后再用dplyr中的spread

使用道具

JLOGAN 发表于 2016-9-21 11:50:01 |显示全部楼层 |坛友微信交流群
johnmy 发表于 2016-9-19 00:02
请问前辈,加上第三列id有用吗?我就用前两列的话提示错误:
Error: Duplicate identifiers for rows (3397, 3399), (1040, 1042), (3622, 3623),
已经去重了,这是什么原因呢

使用道具

JLOGAN 发表于 2016-9-21 11:52:02 |显示全部楼层 |坛友微信交流群
johnmy 发表于 2016-9-19 16:32
学习一下tidyr和dplyr包吧。
很有用。
你的例子估计要先用]作为分界把字符拆开,再替换了不需要的。或是 ...
果然有用,谢谢亲~~

使用道具

johnmy 发表于 2016-9-21 14:40:09 |显示全部楼层 |坛友微信交流群
JLOGAN 发表于 2016-9-21 11:50
请问前辈,加上第三列id有用吗?我就用前两列的话提示错误:
Error: Duplicate identifiers for rows (3 ...
不知道,反正有时间提示重复我就再加上一列

使用道具

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

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

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

GMT+8, 2024-5-31 00:58