【发布时间】:2015-04-10 16:28:22
【问题描述】:
我正在尝试基于使用模式匹配的现有列创建一个新列。现有列是用户代理字段,例如
"Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10"
我想创建一个使用模式匹配来识别设备的新列。
-所以如果 user_agent 像 '%iPad%' 和 user_agent 像 '%WebKit%' 那么设备就是 iPad。 - 如果用户代理 user_agent 像 '%Android%' 而 user_agent 不像 '%Mobile%' 那么设备是一个 android - 如果 (user_agent like '%Silk%' and user_agent like '%WebKit%') 那么设备是 kindle -if (user_agent like '%Playbook%') then device is Other
我想尝试使用 dplyr 中的 mutate 函数来创建新列,但需要有关如何构造正则表达式的帮助
即 mutate(data,device = ....)
【问题讨论】:
-
当你展示你的数据时,这不是一列,而是一个包含一个元素的字符向量。我对这个不清楚的解释感到迷茫。
-
用户代理字段是一列,其中的行代表不同的用户代理。因此,对于每一行,我想创建一个新列,用于标识用户代理字段是否为设备
-
但这并不完全是你写的......你只是放了一个随机字符串,不受任何
data.frame的影响...... -
哦,我没看到。看起来我的数据格式已转换为代码行。我的意思是用户代理是数据框中的一列
-
..and ....你能....tada....重新格式化您的数据:) ?