r - R:根据某些字符创建新的虚拟变量列
问题描述
我正在尝试使用 R 向我的数据框中添加一个新的虚拟变量列。标准将基于篮球运动员的位置。
我仍然想保留位置列,作为参考。
虚拟变量,guard = 1 表示“PG”(控球后卫)和“SG”(得分后卫),= 0 表示“SF”、“PF”和“C”
此外,如果有两个位置组合(例如“SG-SF”),则仅使用第一个位置(例如“SG”)。
df <- data.frame (player = c("a","b","c","d","e","f","g"),
position = c("PF","SF","PG-SG", "SG-SF", "C", "PF", "SF-PF"))
非常感谢。
解决方案
另一种base R
解决方案基于grepl
df[["guard"]] <- +grepl("^PG|SG", df[["position"]])
正则表达式:(返回字符串中找到的模式的布尔值)用于列grepl
中字符串开头的“PG”或“SG” (将结果转换为)^
position
+
TRUE|FALSE
1|0
推荐阅读
- dns - 如何将特定的dns请求转发到bind9中的另一个dns服务器
- android - 使用 EncryptedSharedPreferences 时出现 ANR
- latex - 背页中的 12pt,Latex 对应于 Microsoft Word 中的字体 12?
- javascript - (节点:1984)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“电子邮件”
- php - PHP日期函数不尊重 date_default_timezone_set
- wordpress - Nginx 反向代理:如何反向代理在外部 IP 上运行的 wordpress 站点
- git - 克隆一个镜像的本地 Git 存储库
- python - Python - 如何将过滤器应用于视频?
- python - 如何登录多个 Telegram 帐户并向群组发送消息
- javascript - Azure Functions Blobtrigger 读取文件并将数据存储在数据库中