输入'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