检测字符串类型并据此创建新变量
Posted
技术标签:
【中文标题】检测字符串类型并据此创建新变量【英文标题】:Detect type of string and create new variable accordingly to it 【发布时间】:2022-01-05 09:47:06 【问题描述】:所以我有一个密码数据集,如果密码与以下字符串之一匹配,我想创建一个新列(我正在使用 R)
id password year lenght
1 1 12345 2001 5
2 2 pass4 2002 5
3 3 angel 2003 5
4 4 pizza 2004 5
只有字母的密码模式:“^[a-zA-Z]+$”
只有数字的密码模式:“^[0-9]*$”
同时包含数字和字母的密码模式:'([0-9].[a-zA-Z])|([a-zA-Z].[0-9] )'
所以基本上我需要一个名为 TYPE 的新列,包含 3 个级别(数字、字母或两者)
我需要的是这个:
id password year lenght Type
1 1 12345 2001 5. numbers only
2 2 pass4 2002 5. both
3 3 angel 2003 5. letters only
4 4 pizza 2004 5. letters only
【问题讨论】:
我不明白您在寻找什么。你能展示你想要的输出吗? 好的,我放了一个我应该在最后得到的输出的例子 【参考方案1】:您可以使用以下解决方案。请记住,我们将条件从最具体(两者)到最一般(其他两个条件之一):
library(dplyr)
df %>%
mutate(Type = case_when(
grepl("[A-Za-z]+", password) & grepl("[1-9]+", password) ~ "Both",
grepl("[A-Za-z]+", password) ~ "Letters Only",
grepl("[1-9]+", password) ~ "Numbers Only",
TRUE ~ as.character(password)
))
id password year lenght Type
1 1 12345 2001 5 Numbers Only
2 2 pass4 2002 5 Both
3 3 angel 2003 5 Letters Only
4 4 pizza 2004 5 Letters Only
【讨论】:
不客气。如果它回答了您的问题,请考虑接受或投票。 我不能投票,因为我今天创建了我的帐户。它告诉我我需要至少 15 声望才能投票 谢谢,没关系。如果您有任何其他问题,请告诉我。以上是关于检测字符串类型并据此创建新变量的主要内容,如果未能解决你的问题,请参考以下文章
js 的书写位置——三大核心——变量——输出语法——js 的数据类型——检测数据类型——数据类型转换——检测非数字的方法——运算符——条件分支 - if——条件分支 - switch