所以我有一個密碼資料集,如果密碼與以下字串之一匹配,我想創建一個新列(我正在使用 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 with 3 levels(數字、字母或兩者)的新列
我需要的是這個:
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
非常感謝您的幫助
uj5u.com熱心網友回復:
您可以使用以下解決方案。請記住,我們將條件從最具體(兩個)到最一般(其他兩個條件之一):
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368519.html
