作者windguide (夜很深)
看板Statistics
标题[程式] R 字串比对问题
时间Mon Mar 25 18:30:50 2013
------------------------------------------------------------------------
[软体程式类别]:
R
[程式问题]:
资料处理
[软体熟悉度]:
低(1~3个月)
[问题叙述]:
各位好,我想要处理的问题,是去比对两组新旧的资料,找出新增的部分
我尽量描述我的资料格式,希望大家可以了解
Old Data New Data
name Description name Description
Tom John happy hungry energy Kate greedy,lazy,evil
Mary pretty cute funny Tom happy,kind
Kate greedy lazy John hungry,energy,angry,crazy
Cindy sunny Mary pretty,cute
Jack nice,stupid
Alan funny,shy,stupid
两栏之间是以TAB作分隔
在name栏中 旧资料与新资料的差异是在同一列中,旧资料会同时有两个名字
新资料则是拆开成两列,且新资料会有多的人名
在 Description栏中,旧资料是以空白作分隔,新资料是逗点;且同一人名新资料
会多或少一些描述
现在我的目标是产生一个新档案
以新的资料人名为主。旧资料有,新资料没有的人名,不要。
以新资料的人名,去比较新与旧的描述,只要新的描述。旧的有,新的没有也不要
并且以空白作分隔
以上述例子,结果会变成
name Discription
Kate evil
Tom kind
John angry crazy
Mary
Jack nice stupid
Alan funny shy stupid
我现在的想法是说 把新旧资料设为matrix
将先将旧资料与新资料作match,找出旧资料的index,
再依此index对相对应的Discription作处理
match(new[,1],old[,1])
但是此时会产生一个问题,就是在旧资料的 Tom John 这笔资料
无法被新资料match到,所以我猜match是精准比对?
有无办法变成部分比对或模糊比对?或者有更好的方式
再来就是Discription的部分,我是想找到index後,将相对应的新旧资料
再做一次比对,然後取代回新资料。可是这种类似取差集的的过程,有没有
适当的函式可以操作。另外,我也不太懂要如何将资料matrix中的元素
以逗号和空白拆开,让我可以做比对
不知各位有没有其他的想法,文长抱歉
[程式范例]:
虽然张贴程式很可怕,但基本上有些程式还是要张贴才能解决
-----------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.76.175.169
※ 编辑: windguide 来自: 211.76.175.169 (03/25 18:33)