输入'typ'can';不能回收到R的大小
我有这个数据框:输入'typ'can';不能回收到R的大小,r,dplyr,substring,R,Dplyr,Substring,我有这个数据框: DF V1 V2 P1 03.02.2020 22 04.02.2020 33 05.02.2020 P2 05.02.2020 P1 06.02.2020 我想要这个输出 DF V1 V2 V3 P1 03.02.2020 P1 22 04.02.2020 NA 33 05.02.2020 NA R2 05.02.2020 R2 S3 06.02.2020 S3 在V3中,我希望只有字符串包含来自V1的字
DF
V1 V2
P1 03.02.2020
22 04.02.2020
33 05.02.2020
P2 05.02.2020
P1 06.02.2020
我想要这个输出
DF
V1 V2 V3
P1 03.02.2020 P1
22 04.02.2020 NA
33 05.02.2020 NA
R2 05.02.2020 R2
S3 06.02.2020 S3
在V3中,我希望只有字符串包含来自V1的字母
我用了这个密码
DF %>% mutate(V3 = grep("([A-Z])", V1))
但我有一个错误:
x输入类型
无法循环使用
我如何解决这个问题?如果有其他问题,您可以使用
ifelse
:
DF %>% mutate(V3 = ifelse(grepl("[A-Z]", V1), as.character(V1), NA))
#> V1 V2 V3
#> 1 P1 03.02.2020 P1
#> 2 22 04.02.2020 <NA>
#> 3 33 05.02.2020 <NA>
#> 4 P2 05.02.2020 P2
#> 5 P1 06.02.2020 P1
DF%>%变异(V3=ifelse(grepl(“[A-Z]”,V1),as.character(V1),NA))
#>V1 V2 V3
#>1 P1 03.02.2020 P1
#> 2 22 04.02.2020
#> 3 33 05.02.2020
#>4 P2 05.02.2020 P2
#>5 P1 06.02.2020 P1
您可以覆盖不匹配的内容:
DF$V3 <- DF$V1
DF$V3[!grepl("([A-Z])", DF$V1)] <- NA
#DF$V3[-grep("([A-Z])", DF$V1)] <- NA #Alternative
DF
# V1 V2 V3
#1 P1 03.02.2020 P1
#2 22 04.02.2020 <NA>
#3 33 05.02.2020 <NA>
#4 P2 05.02.2020 P2
#5 P1 06.02.2020 P1
DF$V3