从数字矩阵中删除 '%'

标签 r matrix apply

简单的问题,如何从应该是数字的矩阵中删除不需要的字符?

我总是对 apply 函数感到困惑,而且我似乎无法正确理解......

检查这个MWE,我在一些数字后面有一些不需要的“%”,需要将它们删除。我知道如何在变量(列)的基础上执行此操作,但如何将其正确应用于整个矩阵?

> a=matrix(c('7%','11%',22,'65%',7,8,'1%','77%','34%'), ncol=3)
> a
     [,1]  [,2]  [,3]
[1,] "7%"  "65%" "1%"
[2,] "11%" "7"   "77%"
[3,] "22"  "8"   "34%"
> as.numeric(sub("%$","",a[,1]))
[1]  7 11 22

预期输出:

> a
     [,1] [,2] [,3]
[1,]    7   65    1
[2,]   11    7   77
[3,]   22    8   34

最佳答案

在矩阵上,您可以直接应用变换:

b <- a
b <- as.numeric(sub('%$','', b))
dim(b) <- dim(a)
b
#     [,1] [,2] [,3]
#[1,]    7   65    1
#[2,]   11    7   77
#[3,]   22    8   34

关于从数字矩阵中删除 '%',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63068166/

相关文章:

r - 在 R 中使用 fitdist 将数据拟合到 Gumbel 分布时出错

c++ - 矩阵相互覆盖

c - 在文件范围内声明矩阵,来自用户输入的维度? C

c++ - 优化rcpp代码

R-混合效应模型中的均方根误差

r - ggplot2 点之间的垂直线

performance - 在Matlab中,找到每个矩阵元素的距离

来自数组的函数时的 Javascript 作用域问题

带有 For 循环的 Python 定义函数

python - 如何使用 pandas groupby 并一起移动