【问题标题】:Any way to edit values in a matrix in R?有什么方法可以在 R 中编辑矩阵中的值?
【发布时间】:2012-10-21 06:04:36
【问题描述】:

我已经解析了一个文件以提取某些值。一列包含带有符号的百分比。有什么办法可以去掉那个“%”字符吗?

从这里:

98.9%   23    43
92.2%   342   34
98.9%   53    53
82.2%   32    76
97.9%   83    45
92.9%   92    23

到:

98.9   23    43
92.2   342   34
98.9   53    53
82.2   32    76
97.9   83    45
92.9   92    23

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    您在标题中说您有一个矩阵 - 在这种情况下,矩阵中的所有内容都应该是“字符”。使用 gsub 将 % 替换为空。

    > j <- matrix(c("1%", "2%", 3, 4), ncol = 2)
    > j
         [,1] [,2]
    [1,] "1%" "3" 
    [2,] "2%" "4" 
    > gsub("%", "", j)
         [,1] [,2]
    [1,] "1"  "3" 
    [2,] "2"  "4" 
    

    如果您希望它是数字,您可以使用 applyas.numeric

    > apply(gsub("%", "", j), 1, as.numeric)
         [,1] [,2]
    [1,]    1    2
    [2,]    3    4
    

    【讨论】:

    • 似乎是 gsub 所固有的。
    【解决方案2】:

    使用gsub% 替换为空字符串,然后转换为数字:

    x <- c("98.9%", "92.2%", "98.9%", "82.2%", "97.9%", "92.9%")
    as.numeric(gsub("%", "", x))
    [1] 98.9 92.2 98.9 82.2 97.9 92.9
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-22
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多