r - R中的ifelse函数创建一个新变量
问题描述
我在名为“adoption”的数据集文件中创建了一个新变量“house_group”。我希望“house_group”中的条目根据条件为 0 或 1:如果教育(数据集中的另一个变量)为 1,则 house_group 应为 1。但如果教育为 2,则 house_group 应为 0。我使用了以下 ifelse 函数. 但它为新变量 house_group 返回 NA。变量“教育”中的选项是 1 和 2,它们是分类的而不是连续的。我希望 House_group 选项 1 和 0 是分类的。有什么帮助吗?
adoption$house_group<-NA
ifelse(adoption$education=="1",adoption$house_group=="1", adoption$house_group=="0")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[32] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[63] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[94] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[125] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[156] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[187] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[218] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[249] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[280] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[311] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[342] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[373] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[404] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[435] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[466] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[497] NA NA NA NA NA NA NA NA NA NA NA NA NA NA
解决方案
这是使用 data.frame 掩码解决此问题的一种方法。选择所需的正确行和列,然后按组替换这些 NA。
df <- as.data.frame(sample(1:2,10,replace=TRUE))
colnames(df) <- c('education')
df$house_group <- NA
df[df$education == 1,'house_group'] <- 1
df[df$education == 2,'house_group'] <- 0
另一种使用 ifelse 逻辑的方法。问题是您没有在上面的 ifelse 函数中使用赋值运算符“<-”。
df$house_group <- ifelse(df$education=="1", 1, 0)
推荐阅读
- javascript - c3 (v4) 条形图中的重叠条形图
- python - Numpy图像数组错误尺寸Python和Keras
- c++ - 将 QVTKOpenGLWidget 与 Qt 一起使用导致项目崩溃
- javascript - 条纹自定义付款表单未正确显示
- reactjs - 在 FlatList 页脚的中心获取按钮
- node.js - 在 Spring Boot 应用程序中使用 npm 模块
- r - RInno 在 RStudio 中使用 Shiny 的详细示例
- c - 我怎样才能让用户选择单位
- node.js - TypeError:req.post 不是函数
- jmeter - 我可以在运行负载测试 jmeter 时应用因子吗