我有这样一些数据:
num name
1234 Zhang San
2245 zhang San; Li Si
3764 Zhang Si; Wang Er-xiao
需要把这个数据表整理成(num,单个name)这样的组合,也就是输出成如下的样式:
num name
1234 Zhang San
2245 Zhang San
2245 Li Si
3764 Zhang Si
3764 Wang Erxiao
第一,我一开始看到人名是用分号隔开的,所以想问问有没有函数可以直接计算字符串中的某个字符?比如计算分号在name中的次数,这样就可以知道一个号码对应多少个人名了。
第二,后来我发现其实不需要这样,用strsplit就能分开这个name字符串,(不过还是想了解一下有没有第一个问题里所需要的函数)。但是问题是分开以后,怎么把对应num拷贝多次,对应给多个人名,并且加入数据表呢(rbind?)?
第三,单个人名也需要处理,只保留字母和姓名之间的空格,要删除前缀和后缀的空格(sub+正则?),要删除名字之间的'-',只有每个姓或名的首字母才大写,其余都改为小写字母,这些不知道用什么函数处理?
最后,在这个数据表完成后,可以用order来按人名排序,但是如何计算人名的频数呢?也就是每个人名出现的次数。我想生成一个新的数据表,两个变量,name和频数,不知道应该用什么函数来处理(table?)?


雷达卡




京公网安备 11010802022788号







