【发布时间】:2015-05-25 22:40:54
【问题描述】:
我是在这里编程的新手,所以我很抱歉这是一个初级问题。我在 R 工作。
我的数据集:简而言之,我有一个大约 30 种疾病的列表(其中一些包括哮喘、背痛等,它们不一定表示疾病,而是某种慢性病)。对于每个问题,受访者回答“1”如果他们患有这种疾病,“2”如果没有,如果他们不知道自己的疾病状况,则回答“88”。
我想创建一个名为“chronic”的新变量,它可以捕获所有患有 1、2 或 3+ 种慢性病的个体。当然,我可以坐在这里检查所有条件,但是有没有一种有效的方法来扫描每个特定的疾病列,如果参与者回答“1”,创建某种运行总和,以便在这个新的“ “慢性”变量表示他们患有慢性病的数量?
提前致谢
【问题讨论】:
-
通常 no 表示为 0,yes 表示为 1。我建议用它替换你的值,以及用 88 替换 @ 987654321@。例如,您可以使用 sum() 来计算给定疾病或受访者的肯定答案数量。这可以通过
df[df==88]=NA、df[df==2]=0轻松完成。 -
@Molx 更好的主意.. 我会试试这个方法。我的 df 不仅包含疾病变量,还有其他人口统计变量,例如年龄等,编码为 2。有没有办法选择列的子集(疾病列)并设置“2”值像你建议的那样“0”?我想出了这样的东西.. 但是运行时,没有任何变化(8、24 代表列号):nhss[nhss[,c(8:24)==2]]=0
-
如果您想限制对特定列的更改,请在对要更改的行进行子集化之前对这些列进行子集化:
nhss[,8:24][nhss[,8:24]==2]=0。
标签: r variables conditional