我正在尝试将“9.230”等字符转换为数字类型。 首先,我删除了点,因为它返回了我“NA”,然后我转换为数字。 问题是,当我转换为数字时,我失去了尾随零:
示例:
A< -9.230
as.numeric(GSUB( “ ”“”,一,固定= TRUE))
返回:923
有谁知道如何避免这种情况?
答案 0 :(得分:1)
寻找
的结果a<-9.230
gsub(".","",a,fixed=TRUE)
#[1] "923"
问题将是为什么?因为在fixed=TRUE
的参数中使用了gsub
。因此.
被gsub
的{{1}}的第二个参数替换为""
。
基本上这就是as.numeric(gsub(".","",a,fixed=TRUE))
导致923
还有另外一点。 a <- 9.230
如何在character
函数中更改为gsub
。 r
的{{1}}文档中已对此进行了解释:
参数:x,文本
寻找匹配的字符向量或对象 它可以被as.character强制转换为字符向量。长 支持向量。
最后一个问题:如何避免这种行为?
不要使用gsub
。使用gsub
答案 1 :(得分:1)
您指定的编号为9.230,与9.23相同。系统如何知道有一个尾随零?如果要转换字符串,请使用字符串“9.230”。