r - 用字符串替换单个特定的 NA 值
问题描述
我想用字符串替换第 22907 行第 1 列。该列由因子组成。数据框中的第 1 列称为geneID。我尝试了以下方法:
df[22907,1] == 'CDEF'
但这给出了以下错误:
警告消息:In
[<-.factor
(*tmp*
, iseq, value = "OKSM") : 无效因子水平,NA 生成
我了解如何用一个值替换所有 NA,但是我只想替换这个特定的值。
编辑:很确定这个问题不是链接问题的重复 - 我们遇到了类似的错误,但基本问题不同。这解释了如何替换数据框中的单个值。
解决方案
我们将列转换为character
,然后进行赋值
df[[1]] <- as.character(df[[1]])
df[22907,1] <- 'CDEF'
或者,如果我们需要将其保留为,请在分配之前factor
创建“CDEF”作为列之一levels
levels(df[[1]]) <- c(levels(df[[1]]), 'CDEF')
df[22907,1] <- 'CDEF'
df[22907, 1]
#[1] CDEF
#Levels: A B C D E CDEF
数据
set.seed(24)
df <- data.frame(geneID = sample(LETTERS[1:5], 30000, replace = TRUE),
col2 = rnorm(30000))
df[22907, 1] <- NA
推荐阅读
- tensorflow - 如何在 Keras 中定义 ConvLSTM 编码器解码器?
- r - purrr:加入嵌套在不同列表列中的小标题
- django - 用于前端的 Django Rest 框架视图和常规 django 视图
- .htaccess - 当名称包含问号 (?) 时重写
- c# - Int64 % Int32 给出 Int64 结果
- c# - 从 ASP.NET 菜单中删除菜单
- c# - 此文件转换代码中的性能问题是什么?
- joi - 使用 joi 验证库删除未知对象属性
- ios - 申请 HomePod
- powerbi - 嗨,我正在使用一些 DAX、度量值和表格来处理 Power BI,以获取最后一条记录,其中包含到期日期范围内的累积日期这里是表格