我有这个数据集,我需要删除(删除和垃圾)城市名称后的所有内容.我该怎么办?

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)))

R相关问答推荐

查找满足SpatRaster中条件的单元格位置

如何删除多个.CSV文件的行

根据选中三个复选框中的一个或两个来调整绘图

如何使用按钮切换轨迹?

ggplot的轴标签保存在officer中时被剪切

在GGPLATE中将突出的点放在前面

如何在观测缺失的地方添加零

找出二叉树中每个 node 在R中的深度?

DEN扩展包中的RECT树形图出现异常行为

更改STAT_VALLES/STAT_PEAKS中的箭头线宽/大小

在列表中排列R数据框中的列顺序

基于数据集属性将科分配给物种

如何将一些单元格的内容随机 Select 到一个数据框中?

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

如何在Quarto中使用美人鱼图表中的标记来加粗文本

抽样变换-REXP与RWEIBUR

如何在R中的两列以上使用联合(&U)?

将每晚的平均值与每晚的值进行比较,统计是否有效?

在一个multiplot中以非对称的方式在R中绘制多个图

只有当我在循环的末尾放置一条print语句时,Foreach才会给出预期的输出