4

我有一个源自 excel 文件的数据框。它在列上方具有通常的标题,但某些列中有我要删除的 % 符号。

搜索stackoverflow为从矩阵中删除百分比提供了一些不错的代码,有什么方法可以在R中编辑矩阵中的值?,当我尝试将其应用于我的数据框时,它不起作用

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

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

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

我得到了“c(...)”形式的值,其中 ... 代表数字,后跟逗号,为我拥有的每一列复制。没有 % 是有证据的;如果我能把这个重新组合起来……我会做饭的。

任何帮助都得到了很大的帮助,谢谢。

4

1 回答 1

7

基于@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

as.numericsapply调用中添加了结果 cols 为数字,如果我不使用as.numeric结果将为factor. 使用sapply(DF2, class)

于 2013-01-17T17:55:47.600 回答