匹配 "uniqid" 与相应的性别和年龄。
Matching "uniqid" with corresponding sex and age.
我有一个数据框 imcds
来自一项调查,该调查向住户询问了家庭中每个人的性别和年龄信息。所以户主就是第 1 个人,其他人就是第 2、3、4 个人……等等……因此:
uniqid Age1 Age2 Age3 Sex1 Sex2 Sex3
1012501 9 7 5 1 2 1
1012502 9 7 5 1 2 1
1012503 9 7 5 1 2 1
1012601 8 5 NA 2 1 NA
1012602 8 5 NA 2 1 NA
uniqid
的前五位数字为户号,后两位为个人标识。因此,Person 1012503
的 Age 值为 Age3
(5),Sex 为 Sex3
(1)。我想要做的是将数据框 imcds
重塑成这样的东西:
uniqid Age Sex
1012501 9 1
1012502 7 2
1012503 5 1
1012601 8 2
1012602 5 1
每个uniqid
及其对应的Sex
和Age
values.The数据框有583个变量的2095个obs。我需要一个循环吗?我能做什么?
我们从'uniqid'列中提取6到7个字符的子串,用它来创建row/column索引('ind'),从[=16=中提取相应的元素] 列和 'Sex' 列,以及 cbind
与数据集的第一列。
ind <- cbind(1:nrow(df1), as.numeric(substr(df1$uniqid, 6,7)))
Age <- df1[grep("Age", names(df1))][ind]
Sex <- df1[grep("Sex", names(df1))][ind]
df2 <- cbind(df1[1], Age, Sex)
df2
# uniqid Age Sex
#1 1012501 9 1
#2 1012502 7 2
#3 1012503 5 1
#4 1012601 8 2
#5 1012602 5 1
我有一个数据框 imcds
来自一项调查,该调查向住户询问了家庭中每个人的性别和年龄信息。所以户主就是第 1 个人,其他人就是第 2、3、4 个人……等等……因此:
uniqid Age1 Age2 Age3 Sex1 Sex2 Sex3
1012501 9 7 5 1 2 1
1012502 9 7 5 1 2 1
1012503 9 7 5 1 2 1
1012601 8 5 NA 2 1 NA
1012602 8 5 NA 2 1 NA
uniqid
的前五位数字为户号,后两位为个人标识。因此,Person 1012503
的 Age 值为 Age3
(5),Sex 为 Sex3
(1)。我想要做的是将数据框 imcds
重塑成这样的东西:
uniqid Age Sex
1012501 9 1
1012502 7 2
1012503 5 1
1012601 8 2
1012602 5 1
每个uniqid
及其对应的Sex
和Age
values.The数据框有583个变量的2095个obs。我需要一个循环吗?我能做什么?
我们从'uniqid'列中提取6到7个字符的子串,用它来创建row/column索引('ind'),从[=16=中提取相应的元素] 列和 'Sex' 列,以及 cbind
与数据集的第一列。
ind <- cbind(1:nrow(df1), as.numeric(substr(df1$uniqid, 6,7)))
Age <- df1[grep("Age", names(df1))][ind]
Sex <- df1[grep("Sex", names(df1))][ind]
df2 <- cbind(df1[1], Age, Sex)
df2
# uniqid Age Sex
#1 1012501 9 1
#2 1012502 7 2
#3 1012503 5 1
#4 1012601 8 2
#5 1012602 5 1