【发布时间】:2021-06-30 13:31:57
【问题描述】:
我有 3mio 观察,属性为“other_tags”。 “other_tags”的值必须转换为新的属性和值。
输入()
structure(list(osm_id = c(105093, 107975, 373652), other_tags = structure(c(2L,
3L, 1L), .Label = c("\"addr:city\"=>\"Neuenegg\",\"addr:street\"=>\"Stuberweg\",\"building\"=>\"school\",\"building:levels\"=>\"2\"",
"\"building\"=>\"commercial\",\"name\"=>\"Pollahof\",\"type\"=>\"multipolygon\"",
"\"building\"=>\"yes\",\"amenity\"=>\"sport\",\"type\"=>\"multipolygon\""
), class = "factor")), class = "data.frame", row.names = c(NA,
-3L))
这是数据的子样本:
osm_id other_tags
105093 "building"=>"commercial","name"=>"Pollahof","type"=>"multipolygon"
107975 "building"=>"yes","amenity"=>"sport","type"=>"multipolygon"
373652 "addr:city"=>"Neuenegg","addr:street"=>"Stuberweg","building"=>"school","building:levels"=>"2"
这是所需的数据格式:创建新属性(仅用于建筑和便利设施)并添加值。
osm_id building amenity
105093 commercial
107975 yes sport
373652 school
感谢您的帮助!
【问题讨论】:
-
您需要为所寻求的提取定义规则:通过什么规则可以例如在字符串中检测到值
sport?还可以使用dput()发布最小可重复数据样本。 -
天哪,便利设施包含在第二行(已编辑)中。所以没有规则。只要存在便利设施,它就应该使列“便利设施”和价值。我还用 dput 添加了数据样本
标签: r dataframe gis openstreetmap