在 space 之后删除
Delete after the space
我有这个数据集,我需要删除(删除并删除)名称城市之后的所有内容。我该怎么办?
dati1<- c("a - Novara Delete", "b - Torino Trash", "c - Milano", "f - Bari")
dati2 <-data.frame(do.call(rbind, strsplit(dati1, split = " - ")))
我试过:
c <- dati2$X2 %>% mutate(dati2$X2 = sub("\s+[^ ]+$", "", dati2$X2))
您可以使用 separate
:
tidyr::separate(data.frame(dati1), col = dati1, into = stringr::str_c("col", 1:2), extra = 'drop')
col1 col2
1 a Novara
2 b Torino
3 c Milano
4 f Bari
或以 R 为基数
data.frame(do.call(rbind, lapply(strsplit(dati1, split = "[^[:alnum:]]+"), head, 2)))
read.table
来自 base R
的选项
read.table(text = sub("^(\S+ - \S+)\s+.*", "\1", dati1),
header = FALSE, sep = "-", strip.white = TRUE)
V1 V2
1 a Novara
2 b Torino
3 c Milano
4 f Bari
我有这个数据集,我需要删除(删除并删除)名称城市之后的所有内容。我该怎么办?
dati1<- c("a - Novara Delete", "b - Torino Trash", "c - Milano", "f - Bari")
dati2 <-data.frame(do.call(rbind, strsplit(dati1, split = " - ")))
我试过:
c <- dati2$X2 %>% mutate(dati2$X2 = sub("\s+[^ ]+$", "", dati2$X2))
您可以使用 separate
:
tidyr::separate(data.frame(dati1), col = dati1, into = stringr::str_c("col", 1:2), extra = 'drop')
col1 col2
1 a Novara
2 b Torino
3 c Milano
4 f Bari
或以 R 为基数
data.frame(do.call(rbind, lapply(strsplit(dati1, split = "[^[:alnum:]]+"), head, 2)))
read.table
来自 base R
read.table(text = sub("^(\S+ - \S+)\s+.*", "\1", dati1),
header = FALSE, sep = "-", strip.white = TRUE)
V1 V2
1 a Novara
2 b Torino
3 c Milano
4 f Bari