楼主: hkhorsetrack
1306 4

[问答] 如何合併兩個data frame [推广有奖]

  • 0关注
  • 0粉丝

本科生

15%

还不是VIP/贵宾

-

威望
0
论坛币
49 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
336 点
帖子
26
精华
0
在线时间
95 小时
注册时间
2018-4-5
最后登录
2020-6-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大大好,
假如有兩個data frame,

xdata :
namecost
A

7.5

B

9

C

6.5



ydata :
index

name

amount

1

A

10

2

B

14

3

C

3

4

A

4

5

A

15

6

C

9

7

B

12

8

C

6

9

A

7


如何能在 ydata, 做出以下效果呢

index

name

amount

cost

1

A

10

7.5

2

B

14

9

3

C

3

6.5

4

A

4

7.5

5

A

15

7.5

6

C

9

6.5

7

B

12

9

8

C

6

6.5

9

A

7

7.5

二维码

扫码加我 拉你入群

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

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

关键词:Frame Data Fram FRA RAM

沙发
qoiqpwqr 发表于 2018-4-21 07:51:30 |只看作者 |坛友微信交流群
  1. > xdata <- data.frame(name = c("A", "B", "C"), cost = c(7.5, 9, 6.5))
  2. > ydata <- data.frame(index = 1:9, name = c("A", "B", "C", "A", "A", "C", "B", "C", "A"), amount = c(10,14,3,4,15,9,12,6,7))
  3. > zdata <- merge(xdata, ydata, by = "name")
  4. > zdata <- zdata[order(zdata$index), ]
  5. > zdata
  6.   name cost index amount
  7. 1    A  7.5     1     10
  8. 5    B  9.0     2     14
  9. 8    C  6.5     3      3
  10. 2    A  7.5     4      4
  11. 3    A  7.5     5     15
  12. 7    C  6.5     6      9
  13. 6    B  9.0     7     12
  14. 9    C  6.5     8      6
  15. 4    A  7.5     9      7
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

藤椅
hkhorsetrack 发表于 2018-4-21 08:33:18 |只看作者 |坛友微信交流群
感謝大大

使用道具

板凳
rainningpoet 发表于 2018-4-21 15:53:09 |只看作者 |坛友微信交流群
用 dplyr 或 sqldf

xdata <- data.frame(name = c("A", "B", "C"), cost = c(7.5, 9, 6.5))
ydata <- data.frame(index = 1:9, name = c("A", "B", "C", "A", "A", "C", "B", "C", "A"), amount = c(10,14,3,4,15,9,12,6,7))

# use dplyr
install.packages('dplyr')
library(dplyr)
zdata=ydata%>%left_join(xdata)
zdata

# use sqldf
install.packages('sqldf')
library(sqldf)
zdata=sqldf('select a.*,b.* from ydata a left join xdata b on a.name=b.name')
zdata

使用道具

报纸
hkhorsetrack 发表于 2018-4-22 13:03:06 |只看作者 |坛友微信交流群
聽過dplyr包處理資料速度較快, 這個要存記. 也感謝你的熱心分享

使用道具

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

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

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

GMT+8, 2024-5-7 17:20