如何从 R 中的 URL 路径中提取文本?
How do I extract text from a URL path in R?
我有一个数据框,其中有一列的条目格式为:
/textIwant
/textIwant/otherstuff
/
我想创建一个提取 "textIwant" 的新列。我应该使用 strsplit 还是正则表达式?
我们可以使用str_extract
来提取一个或多个不是/
的字符
library(stringr)
str_extract(str1, "[^/]+")
#[1] "textIwant" "textIwant" "abc-def-ghi" "abc-def-ghi"
或使用 base R
中的 sub
来匹配不是 /
的字符,将其捕获为一个组 (([^/]+)
) 并替换为反向引用 ( \1
)
sub("^.([^/]+).*", "\1", str1)
#[1] "textIwant" "textIwant" "abc-def-ghi" "abc-def-ghi"
数据
str1 <- c("/textIwant", "/textIwant/otherstuff", "/abc-def-ghi/", "/abc-def-ghi")
确实可以使用 strsplit()
拆分 /
。
sapply(strsplit(str1, "/"), "[", 2)
# "textIwant" "textIwant" "abc-def-ghi" "abc-def-ghi"
我会用
basename(str1)
[1] "textIwant" "otherstuff" "abc-def-ghi" "abc-def-ghi"
其中 str1
来自 akrun 的示例:
str1 <- c("/textIwant", "/textIwant/otherstuff", "/abc-def-ghi/", "/abc-def-ghi")
我有一个数据框,其中有一列的条目格式为:
/textIwant
/textIwant/otherstuff
/
我想创建一个提取 "textIwant" 的新列。我应该使用 strsplit 还是正则表达式?
我们可以使用str_extract
来提取一个或多个不是/
library(stringr)
str_extract(str1, "[^/]+")
#[1] "textIwant" "textIwant" "abc-def-ghi" "abc-def-ghi"
或使用 base R
中的 sub
来匹配不是 /
的字符,将其捕获为一个组 (([^/]+)
) 并替换为反向引用 ( \1
)
sub("^.([^/]+).*", "\1", str1)
#[1] "textIwant" "textIwant" "abc-def-ghi" "abc-def-ghi"
数据
str1 <- c("/textIwant", "/textIwant/otherstuff", "/abc-def-ghi/", "/abc-def-ghi")
确实可以使用 strsplit()
拆分 /
。
sapply(strsplit(str1, "/"), "[", 2)
# "textIwant" "textIwant" "abc-def-ghi" "abc-def-ghi"
我会用
basename(str1)
[1] "textIwant" "otherstuff" "abc-def-ghi" "abc-def-ghi"
其中 str1
来自 akrun 的示例:
str1 <- c("/textIwant", "/textIwant/otherstuff", "/abc-def-ghi/", "/abc-def-ghi")