楼主: Adams780719
10283 4

[问答] R语言 merge函数的问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

0%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
56 点
帖子
5
精华
0
在线时间
10 小时
注册时间
2014-2-10
最后登录
2019-9-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位老师,我有如下两个csv文件,想按照第一列进行匹配合并,代码如下:
items=read.table(file.choose(),header = FALSE, sep = "|",fileEncoding = "utf-8", stringsAsFactors = FALSE)
prices=read.table(file.choose(),header = FALSE, sep = "|",fileEncoding = "utf-8", stringsAsFactors = FALSE)

#匹配合并
new_data=merge(prices,items, by.x = c('v1'), by.y = c('v1'))

运行后系统提示:
> new_data=merge(prices,items, by.x = c('v1'), by.y = c('v1'))
Error in fix.by(by.x, x) : 'by'必需指定唯一有效的列

这是什么原因?谢谢!



3_1.csv
996955|2412|Apple iPad Air MD786CH/A 9.7英寸平板电脑 (32G WiFi版)深空灰色
1251208|2061|Apple iPad Air 2 MGKM2CH/A 9.7英寸平板电脑 (64G WiFi版)银色
1197453|10071|华为(HUAWEI)荣耀平板 Wifi版 8英寸平板电脑(高通骁龙四核 1280×800 1G/8G 4800mAh)银色
1192330|6879|小米(MI)7.9英寸平板 WIFI 64GB(NVIDIA Tegra K1 2.2GHz 2G 64G 2048*1536视网膜屏 800W)白色
1225995|2218|小米(MI)7.9英寸平板 WIFI 16GB(NVIDIA Tegra K1 2.2GHz 2G 16G 2048*1536视网膜屏 800W)浅绿色
1308557|1605|华为(HUAWEI)荣耀平板优享版 Wifi 8英寸平板电脑(高通骁龙 64位四核1280×800 2G/16G 4800mAh)香槟金
1185287|836|微软(Microsoft) Surface Pro 3(中文版 Intel i5 128G存储 4G内存)MQ2-00014
1197789|2084|小米(MI)7.9英寸平板 WIFI 16GB(NVIDIA Tegra K1 2.2GHz 2G 16G 2048*1536视网膜屏 800W)淡粉色
996957|11123|Apple iPad Air MD785CH 9.7英寸平板电脑 (16G WiFi版)深空灰色
1150612|5857|台电(Teclast) P98 3G八核 9.7英寸平板电脑(MTK8392 Air视网膜屏1300W摄像头 2G/16GB 超薄7.4mm)前白后金

3_2.csv
996955|3099|4299
1251208|4288|4289
1197453|799|1000
1192330|1699|1799
1225995|1299|1599
1308557|999|1099
1185287|7388|7588
1197789|1299|1500
996957|2788|2899
1150612|999|1499

二维码

扫码加我 拉你入群

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

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

关键词:merge函数 Merge R语言 Microsoft factors Error

沙发
飞行员 发表于 2015-11-9 12:57:39 |只看作者 |坛友微信交流群
默认的V1是大写的

使用道具

藤椅
Adams780719 发表于 2015-11-9 14:34:52 |只看作者 |坛友微信交流群
已解决,谢谢。
另外,能否帮忙解释一下,merge函数中,by.x = c('v1'), by.y = c('v1')这部分,c()是什么意思?c()不是创建向量的函数吗?为什么要在这里用?谢谢。

使用道具

板凳
jiangbeilu 学生认证  发表于 2015-11-9 15:22:55 |只看作者 |坛友微信交流群
Adams780719 发表于 2015-11-9 14:34
已解决,谢谢。
另外,能否帮忙解释一下,merge函数中,by.x = c('v1'), by.y = c('v1')这部分,c()是什么 ...
一般来说,可以不用管by.x和by.y,你需要把两个data.frame需要合并的变量,就是连接两个数据共有的变量,在你这里,比如你把V1命名成code,你把他们的变量名变成一样的,然后用by="code"就可以合并了

使用道具

报纸
ccs0531 发表于 2018-8-28 00:33:20 |只看作者 |坛友微信交流群
new_data=merge(prices,items, by.x = c(“v1”), by.y = c(“v2”'))   
=后的参数 用双引号

使用道具

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

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

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

GMT+8, 2024-5-1 10:05