我的数据集包含5列,第1列是RegionID
,其类是因子类,模式是整数。但是RegionID
列中的少数数字会附加字符,如(670HH, 670XX, XX457
)等
我的任务是搜索这些数字并用0
替换这些字符。
grep()
和sub()
只能用于字符串和字符向量。所以我试图将此列转换为字符向量。但是当我将其转换为字符向量时,它的实际值正在发生变化。
您能否建议我一个合适的解决方案?
答案 0 :(得分:0)
您可以使用as.character()
将列转换为字符。然后,您可以使用sub()
将字母更改为0' s。然后,您可以使用as.numeric()
转换为数字,但请注意,前导0将不再显示。
答案 1 :(得分:0)
gsub(...)
确实可以解决因素。
str <- c("12345", "670HH", "670XX", "XX457")
fstr <- facor(str)
fstr
# [1] 12345 670HH 670XX XX457
# Levels: 12345 670HH 670XX XX457
gsub('[A-Z]',"0",fstr)
# [1] "12345" "67000" "67000" "00457"
正如已经指出的那样,你可以使用as.numeric(...)
将它们转换为数字,但是你会丢失前导零。