r - 如何将列转换为数字,而它同时包含字符串和数字作为字符串
问题描述
我有一个数据框,其中有一列我想用来与另一个数据框连接。该列包含数字作为字符串和字符串,如下所示:
x<-data.frame(referenceNumber=c("80937828","gdy","12267133","72679267","72479267"))
如何将数字作为字符串转换为数字并用零/空替换字符串?
我试过了x %>% mutate_if(is.character,as.numeric)
但它返回以下错误:
"Error in UseMethod("tbl_vars") : no applicable method for 'tbl_vars' applied to an object of class "character""
解决方案
我们可以尝试只使用as.numeric
,它将分配NA
给向量中的任何非数字条目。然后,我们可以选择性地NA
用零替换这些值:
x <- c("80937828","gdy","12267133","72679267","72479267")
output <- as.numeric(x)
output[is.na(output)] <- 0
output
[1] 80937828 0 12267133 72679267 72479267
根据@Sotos 的评论进行编辑:如果列/向量实际上是factor
,则必须将其转换为字符才能使我上面的答案起作用。
推荐阅读
- networking - 通过 WiFi 与我的 ESP8266 通信时出现 ERR_CONNECTION_REFUSED
- python - 我无法正确格式化此命令的输出
- ios - 如何使用 Swift 语言显示 AdMob 应用打开广告?
- r - 使用 Ubuntu 20.10 在 Raspberry Pi 4 上安装 R 4.0.3
- javascript - 通过事件监听器切换/显示图像
- python - 为什么 tensorflow 仍然看不到我的 GPU?
- c# - Visual Studio c#,使用 .Image 属性由于某种原因引发错误
- python - 用 Python 附加的多维 numpy 数组
- php - 在php中为每个用户制作一个独特的电路
- python - 将消息变量从 discord.py 中的 async def 中传递出去