我有一个包含两列Link
和Value
的数据框。 Link
列具有类似“abcd.com/efgh/ijkl/mnop”的值,并且是一个URL。我从100,000行样本中抽取了此框架中的10,000行。
现在,我要提取从左到右的最后一个“/”或从右到左的第一个“/”之后的数据。因此,例如在上述示例中,我要提取“mnop”
我想对Link
列中的所有10,000行执行此操作,而Value
列不应该受到影响。
我能够使用
a = sapply(webdatatest, substring, 36)
但这不是动态方法,因为最后一个“/”的位置会改变。这也影响了第二栏。
因此需要一些帮助。
最佳答案
尝试basename()
。它
removes all of the path up to and including the last path separator (if any).
basename("abcd.com/efgh/ijkl/mnop")
# [1] "mnop"
它是 vector 化的,因此您可以将整个列粘贴在那里。
basename(rep("abcd.com/efgh/ijkl/mnop", 3))
# [1] "mnop" "mnop" "mnop"
因此,要将其应用于数据帧
link
的一列webdata
,您只需webdata$link <- basename(webdata$link)
另一个明显的功能是
sub()
,但我认为basename()
可以解决问题,并且更容易。sub(".*/", "", rep("abcd.com/efgh/ijkl/mnop", 3))
关于r - 在数据框列中的 “/”之后提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35146157/