如何从一列的字符串中提取特定数字并使用R将其存储在另一列数据框中?

时间:2017-08-03 15:49:49

标签: r regex grep

我有一个类似于Check The Data frame Here

的数据框

我在从cs.uri.query列中提取ID值并将该特定值存储在同一数据框中的另一列时遇到问题。 我尝试了很多像regex grep这样的方法,但仍然无法解决。 基本上我想得到的结果是: Result

需要帮助解决这个问题。谢谢提前。

2 个答案:

答案 0 :(得分:0)

您可以使用str_match库的stringr功能:

library(stringr) df$UserId <- str_match(df$cs.uri.query, "ID=([0-9]+)")[,2]

这将搜索ID=<some number>的任何匹配并返回第一个括号内的匹配,即数字。

答案 1 :(得分:0)

在基地R中使用gsub

df$UserID <- gsub(".*ID=([0-9]+).*","\\1",df$cs.uri.query)

这会捕获(()ID=之后的数字字符串,并用第一个字符串替换整个字符串(因此任意一侧的.*(意味着任何字符)并且仅)捕获了组\\1

我无法对您的数据进行测试,但它应该有效。