【发布时间】:2013-01-01 08:16:54
【问题描述】:
我有一个源自 excel 文件的数据框。它在列上方有通常的标题,但有些列中有 % 符号,我想删除它们。
搜索 stackoverflow 提供了一些很好的代码,用于从矩阵中删除百分比,Any way to edit values in a matrix in R?,当我尝试将它应用于我的数据框时,它不起作用
as.numeric(gsub("%", "", my.dataframe))
相反,它只返回一串“NA”,并带有一条警告消息,说明它们是由强制引入的。当我申请时,
gsub("%", "", my.dataframe))
我得到了“c(...)”形式的值,其中 ... 代表数字,后跟逗号,为我拥有的每一列复制。没有 % 是有证据的;如果我能把它重新组合起来……我会做饭的。
任何帮助都得到了极大的帮助,谢谢。
【问题讨论】:
-
像往常一样,除非您提供数据供我们使用,否则很难提供太多帮助。
dput(head(...))通常很有用。 -
听起来您的 data.frame 中也可能有因素。尝试在将 stringsAsFactors 设置为 FALSE 时读取它: read.table(file="file.csv", stringsAsFactors = FALSE)
-
@tcash21
stringsAsFactors = FALSE不能解决问题,因为一旦您读取数据然后应用 Arun 的解决方案,生成的 data.frame 将仅包含因子,数字元素将被强制为因子,因此解决方案是使用 Arun 的建议并在sapply调用中添加as.numeric。