【发布时间】:2017-01-26 04:42:56
【问题描述】:
我正在尝试按模型和引擎分隔我的列 VEHICLE_TYPE。代码可以是普通的 SQL 或 R 代码。
我的数据如下所示:
MODEL VEHICLE_TYPE
77 Bora Bora 1.6
79 Ducato Ducato 15 120 Multijet
80 Ducato Ducato 15 120 Multijet
87 Astra Astra 1.7 CDTI
88 406 406 2.0 HDi
89 406 406 2.0 HDi
90 Focus C-MAX Focus C-MAX 1.6 TDCi
91 Focus C-MAX Focus C-MAX 1.6 TDCi
92 Focus C-MAX Focus C-MAX 1.6 TDCi
93 Focus C-MAX Focus C-MAX 1.6 TDCi
94 Focus C-MAX Focus C-MAX 1.6 TDCi
97 S-Klasse S 320 CDI
98 S-Klasse S 320 CDI
99 S-Klasse S 320 CDI
我想收到这样的东西:
MODEL VEHICLE TYPE
Bora 1.6
Ducato 15 120 Multijet
... ...
Focus C-Max 1.6 TDCi
问题是,VEHICLE_TYPE 可以有不同的长度和不同数量的空格,我可以将它们分开。
我用 gsub 和 regex 试过了,没用,但 strsplit 有效。与我真正想要的东西相去甚远,我没有想法,现在需要一些帮助。
> strsplit(as.character(test$VEHICLE_TYPE)," ")
[[1]]
[1] "Bora" "1.6"
[[2]]
[1] "Ducato" "15" "120" "Multijet"
[[3]]
[1] "Ducato" "15" "120" "Multijet"
[[4]]
[1] "Astra" "1.7" "CDTI"
[[5]]
[1] "406" "2.0" "HDi"
[[6]]
[1] "406" "2.0" "HDi"
[[7]]
[1] "Focus" "C-MAX" "1.6" "TDCi"
[[8]]
[1] "Focus" "C-MAX" "1.6" "TDCi"
[[9]]
[1] "Focus" "C-MAX" "1.6" "TDCi"
[[10]]
[1] "Focus" "C-MAX" "1.6" "TDCi"
[[11]]
[1] "Focus" "C-MAX" "1.6" "TDCi"
[[12]]
[1] "S" "320" "CDI"
【问题讨论】:
-
不清楚您要如何修改名称。您能否更新您的问题以清楚地显示字符串是如何转换的?
-
那么 Ducato 的
model是什么 - 它只是 Ducato 还是 Ducato 15?您的“所需输出”与输入不一致。或者是分配的一部分 - 当存在这样的不匹配时覆盖model列? (在这种情况下,为什么你/我们首先需要model列?)
标签: sql r regex oracle strsplit