正则表达式 – 从数据框中删除百分比

前端之家收集整理的这篇文章主要介绍了正则表达式 – 从数据框中删除百分比前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个源自excel文件的数据框.它在列上方有通常的标题,但是有些列中有%符号,我想删除它们.

搜索stackoverflow提供了一些很好的代码删除矩阵中的百分比,Any way to edit values in a matrix in R?,当我尝试将其应用到我的数据框架时这不起作用

as.numeric(gsub("%","",my.dataframe))

相反,它只返回一串“NA”,并带有警告信息,说明它们是由强制引入的.当我申请时,

gsub("%",my.dataframe))

我得到了“c(…)”形式的值,其中……表示数字后面跟着我为每一列重现的逗号.没有%是有证据的;如果我能把它放回原处……我会做饭.

非常感谢任何帮助,谢谢.

解决方法

根据@ Arun的评论和成像,您的data.frame如何:

> DF <- data.frame(X = paste0(1:5,'%'),Y = paste0(2*(1:5),Z = 3*(1:5),stringsAsFactors=FALSE )

> DF # this is how I imagine your data.frame looks like
   X   Y  Z
1 1%  2%  3
2 2%  4%  6
3 3%  6%  9
4 4%  8% 12
5 5% 10% 15

> # Using @Arun's suggestion
> (DF2 <- data.frame(sapply(DF,function(x) as.numeric(gsub("%",x)))))
  X  Y  Z
1 1  2  3
2 2  4  6
3 3  6  9
4 4  8 12
5 5 10 15

我在sapply调用添加了as.numeric,结果cols是数字,如果我不使用as.numeric,结果将是因子.使用sapply(DF2,类)检查出来

猜你在找的正则表达式相关文章