【发布时间】:2022-01-05 04:48:36
【问题描述】:
我在 R 中有下表,其中列出了人的种族、性别、年龄和胆固醇测试。年龄和胆固醇测试显示为虚拟变量。年龄可分为低、中或高,而胆固醇测试可分为低或高。我想将年龄和胆固醇列转换为单列,其中低被归类为 1,中被归类为 2,高被归类为 3。如果一个人从未服用过胆固醇测试,胆固醇测试可能会接近低或高,应该是预期输出中的 N/A。 我希望解决方案是动态的,这样如果我有多个这种格式的列,代码仍然可以工作(即可能有一些新的测试,可以分为高、低或中作为虚拟变量)。
如何在 R 中做到这一点?
输入:
race gender age.low_tm1 age.medium_tm1 age.high_tm1 chol_test.low_tm1 chol_test.high_tm1
<chr> <int> <int> <int> <int> <int> <int>
1 white 0 1 0 0 0 0
2 white 0 1 0 0 0 0
3 white 1 1 0 0 0 0
4 black 1 0 1 0 0 0
5 white 0 0 0 1 0 1
6 black 0 0 1 0 1 0
预期输出:
race gender age chol_test
1 white 0 1 n/a
2 white 0 1 n/a
3 white 1 1 n/a
4 black 1 2 n/a
5 white 0 3 3
6 black 0 2 1
【问题讨论】: