【发布时间】:2020-10-01 03:36:42
【问题描述】:
我想向 df 添加列,其中新添加的列基于 df 现有列中向量的搜索值。
我的原始数据集包含网络数据,其中行代表每个客户访问的页面;访问的页面存储在 df$URL 中。我有一个单独的网页 URL 向量,该向量中的每个元素都需要添加为一列,其值指示原始 df (df$URL) 中客户的页面访问是否与要添加的列匹配 (=vector 元素)。
基本上:我想为向量的每个元素(其中列名 = 向量元素)创建一个列,其值 (0/1) 基于搜索 df 的 URL 列的行以在 a匹配,否则为 0。
urlnames 中的所有向量元素都出现在 df$URL 中(但不是针对每一行),但 df$URL 包含的 URL 比向量中的多(基本上,向量仅包含一些访问次数最多的 URL 页面)。
urlnames <- c("/home", "/login", "/contact")
df <- data.frame("URL" = c("/home", "/login", "/contact", "/chat", "/product-page"))
我会手动执行类似(使用 dplyr)的操作:
df %<>%
mutate(home = ifelse(URL == "/home", 1, 0))
基本上,变量名和 ifelse 标准应该替换为向量元素。我不知道是否有更有效/更简洁的方法来做到这一点。
我真的很想学习如何自动执行这些操作,而不必对每个变量进行手动变异调用。
(顺便说一句,我也希望输入 url 斜杠在创建列名时可能产生的潜在问题,例如 /home 作为变量)
希望我已经足够清楚地解释了我的问题,如果没有,请道歉 - 这是我的第一篇文章,我(显然)是 R 新手。谢谢!
【问题讨论】: