r中的条件列拆分
该列包含“a”等数据和“8a”等数据 a a a a 8a 8a 8a 我一直在尝试将一个值为“a”或“8a”的列拆分为两列,以便在有8的情况下有一个值为“a”的列和一个值为“8”的列。我试过按位置分开,但不起作用,因为如果“8”出现或不出现,“a”的位置不同,我不知道该怎么办。如果有任何帮助,我将不胜感激r中的条件列拆分,r,tidyverse,R,Tidyverse,该列包含“a”等数据和“8a”等数据 a a a a 8a 8a 8a 我一直在尝试将一个值为“a”或“8a”的列拆分为两列,以便在有8的情况下有一个值为“a”的列和一个值为“8”的列。我试过按位置分开,但不起作用,因为如果“8”出现或不出现,“a”的位置不同,我不知道该怎么办。如果有任何帮助,我将不胜感激 非常感谢:)我们可以使用单独的。指定要在数字和字母a的交界处拆分的正则表达式lookaround library(tidyverse) dat %>% separate(ini
非常感谢:)我们可以使用
单独的。指定要在数字和字母a的交界处拆分的正则表达式lookaround
library(tidyverse)
dat %>%
separate(initiativen, into = c('col1', 'col2'), sep= "(?<=8)(?=a)")
库(tidyverse)
dat%>%
分离(initialiven,into=c('col1','col2'),sep=“(?我们可以使用separate
)。指定regex lookaround,以便在数字和字母a之间的连接处分离
library(tidyverse)
dat %>%
separate(initiativen, into = c('col1', 'col2'), sep= "(?<=8)(?=a)")
库(tidyverse)
dat%>%
分离(initiativen,into=c('col1','col2'),sep=“(?用base R你可以做
dat <- data.frame(questionn = rep("008", 7),
initiativen = c(rep("a", 4), rep("8a", 3)),
stringsAsFactors = FALSE)
eight <- grepl("^8", dat$initiativen)
split(dat, eight)
#$`FALSE`
# questionn initiativen
#1 008 a
#2 008 a
#3 008 a
#4 008 a
#
#$`TRUE`
# questionn initiativen
#5 008 8a
#6 008 8a
#7 008 8a
用base R你可以
dat <- data.frame(questionn = rep("008", 7),
initiativen = c(rep("a", 4), rep("8a", 3)),
stringsAsFactors = FALSE)
eight <- grepl("^8", dat$initiativen)
split(dat, eight)
#$`FALSE`
# questionn initiativen
#1 008 a
#2 008 a
#3 008 a
#4 008 a
#
#$`TRUE`
# questionn initiativen
#5 008 8a
#6 008 8a
#7 008 8a
split(dat$initiativen, eight)
#$`FALSE`
#[1] "a" "a" "a" "a"
#
#$`TRUE`
#[1] "8a" "8a" "8a"