自从我不久前开始使用 R< 以来,我发现这个站点在帮助我构建脚本方面非常有用。我又一次遇到了一个我似乎无法在任何地方找到答案的挑战。这是我的问题:在我的数据中,我有一列在每一行中包含不同的 URL。在每个 URL 中,都有我要提取的特定信息。目前我在 excel 中执行此操作,因为有人告诉我在 R 中不可能执行此操作,并且不存在执行此操作的函数。
URL 将类似于此示例格式,可在“源”列中找到
http://www.googleclick.com?utm_source=ADX&ID56789
http://www.googleclick.com?utm_source=ADW&ID56009
http://www.googleclick.com?utm_source=ADWords&ID53389
对我来说重要的 URL 部分是“utm_source=ADX”位。我的数据看起来像这样:
用户/来源
1 / http://www.googleclick.com?utm_source=ADX&ID56789
2 / http://www.googleclick.com?utm_source=ADW&ID56009
3 / http://www.googleclick.com?utm_source=ADWords&ID53389
我需要做的是从 URL 中捕获 utm_source 并将信息转置到不同的列中,示例如下:
用户/来源/utm_source
1 / googleclick / ADX&ID56789
2 / googleclick / ADW&ID56009
3 / googleclick / ADWords&ID53389
所以本质上我需要R在整个数据框中搜索值“utm_source =”,一旦找到它们,我希望它把“utm_source =”值转换为列名并复制后面的所有信息“=”在每一行的该列中。我知道“grep”是一个在 datafreme 中定位特定信息的函数,例如 data <- total[grepl("utm_source", total$Source), ]。这将为我提供包含“utm_source”一词的所有行,但我需要的是“utm_source”之后的信息。通常我的数据可以有多达 500.000 行。目前我为此使用 excel 函数“文本到列”,我基本上将 URL 拆分成小块并保留我需要的列,
有没有办法修改 grepl 函数以满足我需要的标准?