R中删除data.frame行后类型变为character的问题问询
现象成因
- 该问题由R语言数据框索引的默认
drop参数行为导致:当你对只有1列的data.frame做行/列索引时,R默认开启drop = TRUE,会自动将返回结果降维到最低可能的维度。 - 你当前的ira数据框仅有1列
text,类型为character,你执行ira[-c(1000),]时,行号1000超出了数据框110行的实际范围,负索引删除不存在的行等价于返回所有110行的单列结果,触发了自动降维逻辑,原本的单列数据框会被直接转换为character类型的向量。 - 如果你需要保留数据框结构,可在索引时显式指定
drop = FALSE:
ira <- ira[-c(1000), , drop = FALSE]
正确获取character类型对象的方法
如果你后续处理需要使用character类型的文本向量,不需要依赖不稳定的自动降维行为,直接提取数据框的对应列即可:
# 方法1:用$提取列,直接返回character向量 ira_text <- ira$text # 方法2:用双中括号提取列,逻辑更严谨 ira_text <- ira[["text"]]
内容的提问来源于stack exchange,提问作者max
相关产品推荐
相关产品推荐

