在 R 中的整个数据框列上删除随机字符串的一部分
Remove a portion of a randomized string over an entire dataframe column in R
需要帮助删除出现在地址之前的字符串中的随机文本(数据集有大约 5000 个观察值)。 Dataframe test2$address
内容如下:
addresses <- c(
"140 National Plz Oxon Hill, MD 20745",
"6324 Windsor Mill Rd Gwynn Oak, MD 21207",
"23030 Indian Creek Dr Sterling, VA 20166",
"Located in Reston Town Center 18882 Explorer St Reston, VA 20190"
)
我希望它以通用格式吐出所有地址:
[885] "23030 Indian Creek Dr Sterling, VA 20166"
[886] "18882 Explorer St Reston, VA 20190"
不知道该怎么做,因为地址编号之前的文本没有特定的模式。
如果你知道你想要的地址部分总是以数字开头,而你想要删除的部分是文本,那么你可以使用这个:
sub(".*?(\d+)", "\1", x)
输出:
[1] "140 National Plz Oxon Hill, MD 20745"
[2] "6324 Windsor Mill Rd Gwynn Oak, MD 21207"
[3] "23030 Indian Creek Dr Sterling, VA 20166"
[4] "18882 Explorer St Reston, VA 20190"
这样做是删除第一个 (?) 数字系列 (\\d+) 之前的所有内容 (.*)。
示例数据:
x <- c("140 National Plz Oxon Hill, MD 20745",
"6324 Windsor Mill Rd Gwynn Oak, MD 21207",
"23030 Indian Creek Dr Sterling, VA 20166",
"Located in Reston Town Center 18882 Explorer St Reston, VA 20190")
需要帮助删除出现在地址之前的字符串中的随机文本(数据集有大约 5000 个观察值)。 Dataframe test2$address
内容如下:
addresses <- c(
"140 National Plz Oxon Hill, MD 20745",
"6324 Windsor Mill Rd Gwynn Oak, MD 21207",
"23030 Indian Creek Dr Sterling, VA 20166",
"Located in Reston Town Center 18882 Explorer St Reston, VA 20190"
)
我希望它以通用格式吐出所有地址:
[885] "23030 Indian Creek Dr Sterling, VA 20166"
[886] "18882 Explorer St Reston, VA 20190"
不知道该怎么做,因为地址编号之前的文本没有特定的模式。
如果你知道你想要的地址部分总是以数字开头,而你想要删除的部分是文本,那么你可以使用这个:
sub(".*?(\d+)", "\1", x)
输出:
[1] "140 National Plz Oxon Hill, MD 20745"
[2] "6324 Windsor Mill Rd Gwynn Oak, MD 21207"
[3] "23030 Indian Creek Dr Sterling, VA 20166"
[4] "18882 Explorer St Reston, VA 20190"
这样做是删除第一个 (?) 数字系列 (\\d+) 之前的所有内容 (.*)。
示例数据:
x <- c("140 National Plz Oxon Hill, MD 20745",
"6324 Windsor Mill Rd Gwynn Oak, MD 21207",
"23030 Indian Creek Dr Sterling, VA 20166",
"Located in Reston Town Center 18882 Explorer St Reston, VA 20190")