我有一个源自excel文件的数据框.它在列上方有通常的标题,但是有些列中有%符号,我想删除它们.
搜索stackoverflow提供了一些很好的代码来删除矩阵中的百分比,任何方法来编辑R中矩阵中的值?,当我试图将它应用于我的数据帧时,它不起作用
as.numeric(gsub("%", "", my.dataframe))
Run Code Online (Sandbox Code Playgroud)
相反,它只返回一串"NA",并带有警告信息,说明它们是由强制引入的.当我申请时,
gsub("%", "", my.dataframe))
Run Code Online (Sandbox Code Playgroud)
我得到了"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
Run Code Online (Sandbox Code Playgroud)
我as.numeric在sapply调用中添加了结果cols为数字,如果我不使用as.numeric结果将是factor.用它来检查sapply(DF2, class)