r - 在数据框列中的 “/”之后提取文本

标签 r dataframe

我有一个包含两列LinkValue的数据框。 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/

相关文章:

r - 如何计算由离散数据定义的曲面下的体积?

r - ggplot2错误:手动刻度中的值不足

python Pandas : Generate Document-Term matrix from whitespace delimited '.dat' file

r - 通过函数更新数据框不起作用

r - 将列表列的*特定*元素提取到新列

r - 为什么我的 ESS R session 回退到 C 区域设置?

python - 将 DataFrame 中每列的值设置为第 90 个百分点

Python Pandas 累积乘法

java - 加入数据框 spark java

r - 在 R Week 中将每日数据转换为每周数据从周六开始