使用if / else使用系统变量头名称循环

时间:2015-10-18 06:54:30

标签: r loops if-statement

我是R的新用户,我无法理解如何在一系列类似命名的变量中循环ifelse逻辑语句。我有一个家庭的前30名成员的性别和年龄属性,并希望为每个家庭成员创建一个新变量,如果家庭成员既是女性又是成年人(即18岁以上),其值为1 。我将最终总结这些数值来计算家庭中成年女性的数量。我觉得这不是一个难题,但是我的小便很难受。提前感谢您提供任何帮助,我提出的未解决的解决方法如下所示。

{{1}}

...

1 个答案:

答案 0 :(得分:0)

你没有提供示例数据,所以我先创建一些:

context.Type().getText(

如果您只需要快速计算成年女性,请使用x = data.frame(sex = c("m", "f", "f", "f"), age=c(19,10,20,21)) > x sex age 1 m 19 2 f 10 3 f 20 4 f 21 which

length

如果要创建新变量,可以使用for循环:

> which(x$sex == "f" & x$age >= 18) # points to matching indices
[1] 3 4
length(which(x$sex == "f" & x$age >= 18))
[1] 2

或者,更好的是,您已经尝试过的矢量化x$adultfemale = NA for(i in 1:nrow(x)) { if(x$sex[i] == "f" & x$age[i] >= 18) { x$adultfemale[i] = 1 } else { x$adultfemale[i] = 0 } } ,特别是如果您的数据集很大(这更快):

ifelse