r - 如何根据另一列中的部分字符串将一列添加到 R 中的数据框中?
问题描述
我正在尝试基于 R 中另一列中的部分字符串匹配创建一个具有返回值的新列。第一列是由颜色和位置表示的篮球队(例如,yellow_center、red_guard、orange_forward 等)。我要添加的列是基于颜色的团队名称列。在此示例中,我希望根据行中前面的团队/位置字符串返回黄色、橙色或红色值。我只会使用 4 或 5 种颜色。
我弄乱了 grep、grepl 和转换函数,但我没有得到预期的答案。
我试过这个来获取第一个字母,但它似乎没有创建列。
转换(teamfile,team.name <-substr(teamfile$player_position,1)
我已经尝试了 grepl 几种方法,但没有保存它们。
我希望看到的是一个全新的列,其中包含“黄色”或“红色”或“橙色”,基于 player_position 列值中可能存在的任何颜色。
解决方案
如果我理解正确,您想从字符串中提取颜色,对吗?使用 stringr 包,您可以使用
library(stringr)
teamfile$teamname <- str_extract(teamfile$player_position, "^.*(?=\\_)")
# this regex extraxts everything up to a "_"
# so it extracts "orange" based on "orange_guard", "orange_center" or "orange_whatever"
推荐阅读
- kubernetes - 将 master 添加到 Kubernetes 集群:集群没有稳定的 controlPlaneEndpoint 地址
- javascript - 拆分正则表达式数字
- ssl - 使用代理时证书被拒绝
- c - 在C中查找连续整数的问题
- laravel - 我在浏览器端需要什么 URI 才能从 heroku 的 redis 插件连接到亚马逊 redis 服务器
- python - 如何转换浮点字符串的一个元素列表,它们之间的间距不均匀
- flash - 无法在 Chrome 中从 http 源(wildfly 服务器)加载 swf 文件?
- php - PHP / Laravel - 将数组保存到数据库
- scala - 如何在 Spark scala 或 spark sql 中将列转换为行?
- apache - 即使在服务器上启用 Gzip 压缩也不起作用