我有一个源自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,类)检查出来