并行 gsub:如何删除向量的每个元素中的不同字符串
我有一个客人名单,其中一列中有姓氏,然后在另一列中有家庭中每个人的名字或全名(第一个空格最后)。我想让另一列只包含名字。
gsub(guest.w$Last.Name,"",guest.w$Party.Name.s.)
如果我只有一行,那将非常有效,但是如何为数据框中的每一行执行此操作。我必须写一个for循环吗?有没有一种方法可以并行执行,类似于 pmax() 与 max() 的关系。
我的问题在某种程度上类似于 之前由 JD Long 提出的问题,但与我的相比,这个问题只是小菜一碟。
例子
:
史密斯;乔·史密斯、凯文·史密斯、简·史密斯
改变;罗伯特·阿尔特、玛丽·阿尔特、罗纳德·阿尔特
成为
史密斯;乔、凯文、简
改变;罗伯特、玛丽、罗纳德
I have a guest list that has a last name in one column and then in another column I have the first names or the full names (first space last) of each person in the family. I am wanting to get the other column to just have the first names.
gsub(guest.w$Last.Name,"",guest.w$Party.Name.s.)
That would work perfectly if I just had one row but how do it do it for each row in the dataframe. Do I have to write a for loop? Is there a way to do it in parallel similarly to the way pmax() relates to max().
My problem is similar in a way to a previously asked question by JD Long but that question was a piece of cake compared to mine.
Example
:
Smith; Joe Smith, Kevin Smith, Jane Smith
Alter; Robert Alter, Mary Alter, Ronald Alter
Becomes
Smith; Joe, Kevin, Jane
Alter; Robert, Mary, Ronald
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 hadleys adply:
您可能需要清理新向量中的空间。
Using hadleys adply:
You will probably need to clean up the spaces in your new vector.
您可能需要对表达式进行一些“包装”以使 apply() 函数正常工作:
最终结果如下所示:
you probably need to do some "wrapping" around your expression in order to get the apply() function working:
The final result looks something like this:
我不确定它是否适用于数据框,但您可以尝试其中一种应用功能:
I am not sure it will work on a dataframe, but you could try one of the apply functions: