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

求助:在Understanding Society数据框创建两类特定人群子集

问题分析与修正

你的代码核心问题是逻辑运算符使用错误:&代表“逻辑且”,意味着要求racel_dv同时等于多个不同值(比如同时等于1、2、4),这在逻辑上不可能成立,所以生成的标识变量全为FALSE,自然无法得到正确子集。需要用|(逻辑或)表示“满足其中任一条件”。

另外,在within()函数内部无需重复写British$,直接引用变量名即可,函数会自动在British数据框的环境中查找变量。

修正后的代码

British <- subset(df, ukborn > 0 & ukborn < 5)

df1 <- within(British, {
  White_native <- racel_dv == 1 | racel_dv == 2 | racel_dv == 4
  Second_Generation <- racel_dv == 9 | racel_dv == 10
})

额外优化建议

如果要判断的取值较多,可用%in%运算符简化代码,让逻辑更清晰:

df1 <- within(British, {
  White_native <- racel_dv %in% c(1, 2, 4)
  Second_Generation <- racel_dv %in% c(9, 10)
})

修改后,你可以通过subset(df1, White_native)或subset(df1, Second_Generation)直接提取对应的目标子集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:55:13