gpt4 book ai didi

r - 从超过4位数字的字符串中删除

转载 作者:行者123 更新时间:2023-12-02 08:04:40 26 4
gpt4 key购买 nike

这里的数据

mydf=structure(list(X.U.FEFF.ID = c(3951L, 3955L, 3956L, 3957L, 3958L
), ITEM_SUM = c(29.9, 55.99, 59, 40.95, 47.25), QUANTITY = c(1L,
1L, 1L, 1L, 1L), PRICE = c(29.9, 55.99, 59, 40.95, 47.25), NDS10 = c(0,
0, 5.36, 0, 4.3), NDS18 = c(0, 8.54, 0, 6.25, 0), id = structure(c(5L,
1L, 4L, 3L, 2L), .Label = c("*2108609 fsfhsfghsgfhjdfsdh", "2013077 a[osdig[aodifg[ad",
"2030918 Пhsapsgiju[aeri 180г", "3420159 rgyaeghpiudarsfghpuashg 900г",
"any text"), class = "factor"), ID_C_REGCODES_CASH_VOUCHER = c(3945L,
3953L, 3953L, 3953L, 3953L), DISCOUNTNAME = c(NA, NA, NA, NA,
NA), DISCOUNTSUM = c(0L, 0L, 0L, 0L, 0L)), .Names = c("X.U.FEFF.ID",
"ITEM_SUM", "QUANTITY", "PRICE", "NDS10", "NDS18", "id", "ID_C_REGCODES_CASH_VOUCHER",
"DISCOUNTNAME", "DISCOUNTSUM"), class = "data.frame", row.names = c(NA,
-5L))

id列中
any text
*2108609 fsfhsfghsgfhjdfsdh
3420159 rgyaeghpiudarsfghpuashg 900г
2030918 Пhsapsgiju[aeri 180г
2013077 a[osdig[aodifg[ad

从数字超过4位的行中,我需要从行中删除此类数字。

所需的输出,该id列为
any text
fsfhsfghsgfhjdfsdh
rgyaeghpiudarsfghpuashg 900г
Пhsapsgiju[aeri 180г
a[osdig[aodifg[ad

怎么做?

最佳答案

这是另一个正则表达式。

gsub("[^[:alnum:]]*\\d{4,}", "", mydf$id)
#[1] "any text" " fsfhsfghsgfhjdfsdh"
#[3] " rgyaeghpiudarsfghpuashg 900г" " Пhsapsgiju[aeri 180г"
#[5] " a[osdig[aodifg[ad"

如果您还想删除结果前的空白,请用 trimws包裹它:
trimws(gsub("[^[:alnum:]]*\\d{4,}", "", mydf$id))

编辑。

如果要删除多列中超过4位数字的数字,请按照上面 lapply语句的行 gsub一个函数。
df是一个data.frame,具有两列,其数字分别为 12
df <- mydf["id"]
df$new <- mydf[["id"]]

df[1:2] <- lapply(df[1:2], function(s)
trimws(gsub("[^[:alnum:]]*\\d{4,}", "", s)))

关于r - 从超过4位数字的字符串中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52793460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com