首页 > 解决方案 > R数据框将字符串转换为数字

问题描述

我对 R 很陌生,提前为我的无知道歉。

我已经使用 read_csv 将这个 csv 文件加载到“df”dataframe并寻找绘图,并正确分配了行名和列名。

        a     b      c    d    ...
x    0.5%  2.5%  16.3%  6.3%   ...
y    1.5%  0.5%  1.3%  6.3%   ...
z    0.5%  8.5%  16.3%  1.3%   ...
.
.

我在将“52.26%”值转换为双倍以进行绘图时遇到问题。

我可以使用逐列转换它们

aNum = as.numeric(sub("%", "", df$a))

但是它不适用于整个框架。

allNum= as.numeric(sub("%", "", df))

任何帮助深表感谢 !

标签: rdataframe

解决方案


就像 Mike H. 说的那样,as.numeric将接受一个向量(它有一个单一的类型,比如stringint其他),但它不会接受一个数据框(其中可能有多种不同类型的变量)。该库tidyverse有一些非常好的工具可以有效地通过数据框,它还为您提供了处理百分比的函数。

library(tidyverse)
df %>%
  mutate_all(.funs = readr::parse_number)

推荐阅读