从字符串和数字中删除逗号
Removing commas from strings and numbers
使用 R,如果是数字,如何删除逗号,如果是字母,如何用 space 替换逗号?:
Company | Sales |
-------------------------
go, go, llc |2,550.40 |
tires & more | 500 |
l-m tech |1,000.67 |
示例数据:
data = matrix(c('go, go,llc', 'tires & more', 'l-m technology',
formatC(2550.40, format="f", big.mark=",", digits=2), 500,
formatC(1000.67, format="f", big.mark=",", digits=2)),
nrow=3,
ncol=2)
预期输出:
Company | Sales |
-----------------------
go go llc |2550.40 |
tires & more | 500 |
l-m tech |1000.67 |
我尝试过的:
data <- sapply(data, function(x){
if (grepl("[[:punct:]]",x)){
if (grepl("[[:digit:]]",x)){
x <- gsub(",","",x)
}
else{
x <- gsub(","," ",x)
}
}
})
print(nrow(data)) # returns NULL
您可以使用嵌套的 gsub
:
轻松完成此操作
gsub(",", "", gsub("([a-zA-Z]),", "\1 ", input)
内部模式匹配一个字母后跟一个逗号,并将其替换为该字母。外部的 gsub
将所有剩余的逗号替换为空格。
将其应用于您的矩阵:
apply(data, 2, function(x) gsub(",", "", gsub("([a-zA-Z]),", "\1 ", x)))
# [,1] [,2]
# [1,] "go go llc" "2550.40"
# [2,] "tires & more" "500"
# [3,] "l-m technology" "1000.67"
使用 R,如果是数字,如何删除逗号,如果是字母,如何用 space 替换逗号?:
Company | Sales |
-------------------------
go, go, llc |2,550.40 |
tires & more | 500 |
l-m tech |1,000.67 |
示例数据:
data = matrix(c('go, go,llc', 'tires & more', 'l-m technology',
formatC(2550.40, format="f", big.mark=",", digits=2), 500,
formatC(1000.67, format="f", big.mark=",", digits=2)),
nrow=3,
ncol=2)
预期输出:
Company | Sales |
-----------------------
go go llc |2550.40 |
tires & more | 500 |
l-m tech |1000.67 |
我尝试过的:
data <- sapply(data, function(x){
if (grepl("[[:punct:]]",x)){
if (grepl("[[:digit:]]",x)){
x <- gsub(",","",x)
}
else{
x <- gsub(","," ",x)
}
}
})
print(nrow(data)) # returns NULL
您可以使用嵌套的 gsub
:
gsub(",", "", gsub("([a-zA-Z]),", "\1 ", input)
内部模式匹配一个字母后跟一个逗号,并将其替换为该字母。外部的 gsub
将所有剩余的逗号替换为空格。
将其应用于您的矩阵:
apply(data, 2, function(x) gsub(",", "", gsub("([a-zA-Z]),", "\1 ", x)))
# [,1] [,2]
# [1,] "go go llc" "2550.40"
# [2,] "tires & more" "500"
# [3,] "l-m technology" "1000.67"