【发布时间】:2021-07-27 01:17:03
【问题描述】:
我不熟悉 R 中的循环(以及堆栈溢出!)
我有一个data.frame,其中5:19 的列询问家庭成员的性别(成员 1、成员 2、成员 3 等)。
例如,如果一个人只有 2 个其他家庭成员,那么对于第 3 个性别的成员(列 7:19),值将是 NA(用负数表示)。
使用for-loop,我想使用这些变量来推导出household_size-变量的总数。
我的想法是设置一个家庭大小变量,然后为5:19 中的每一列加 1,直到找到值为负数的列。
#start with 1 for the respondent themselves
DF$HHSIZE<-1
for (i in DF[,5:19]){
if_else (i>0, DF$HHSIZE<-DF$HHSIZE+1, break)
}
我在这里做错了,因为HHSIZE 上每个人的值计算为 2。它是 i>0 部分吗?我需要使用重复的for-loop 来代替吗?
提前致谢!
【问题讨论】:
-
虽然您确实选择了答案,但您能否提供您的
data.frame中的dput,以使您的问题可重现。通过这种方式,如果可能,您可能会获得更有效和/或替代的解决方案。