You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中如何将数值替换为文本?新手替换0/1后数据集未更新求助

错误原因

  • 核心问题出在attach()的使用逻辑:attach(data)仅会将data数据框的列加入R的搜索路径,允许你直接通过列名访问对应的值,但你直接对Eaten变量赋值时,实际是在全局工作环境创建了一个全新的独立向量,完全没有修改原data数据框内的Eaten列,所以原数据集不会发生变化。
  • 额外提示:日常数据处理不推荐使用attach(),很容易引发变量名冲突、修改不生效的问题,新手应尽量避免使用该函数。
  • 你的判断逻辑本身没有问题,列是integer类型也不会影响==0/==1的判断结果。

正确实现方式

不需要使用attach(),直接对原数据框的对应列赋值即可:

data$Eaten <- ifelse(data$Eaten == 0, "Not_Eaten", "Eaten")

运行后查看data$Eaten即可看到修改后的结果。

如果习惯使用tidyverse语法,也可以用以下写法:

library(dplyr)
data <- data %>%
  mutate(Eaten = ifelse(Eaten == 0, "Not_Eaten", "Eaten"))

内容的提问来源于stack exchange,提问作者Rhedavetester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:15:03