【发布时间】:2015-12-30 13:50:32
【问题描述】:
我的数据框如下:
ds <- c("ab", "ab", "cd", "ab", NA, "gh")
member1age<-c(9, 21, 39, NA, 69, 90)
member1gender<-c(1,2,1,1,2,NA)
member2age<-c(15,30, 60, 21,12, 45)
member2gender<-c(1,2,2,1,2,1)
member3age<-c(17,2,90,NA,31,5)
member3gender<-c(1,1,2,NA, 1,2)
member4age<-c(NA, NA,23, NA,NA,NA)
member4gender<-c(NA,NA,1,NA,NA,NA)
df <- data.frame(ds,member1age,member1gender,member2age,member2gender,member3age,member3gender,member4age,member4gender)
我想在特定的 ds 中找出给定年龄范围内每种性别有多少人。
例如 ds-“ab”有多少 15-30 岁的男性。 我想要的输出如下所示;表A:
Age Category Number of Males % Number of Females % Total Number %
Below 5 1 20.00 0 - 1 14.29
6-14 1 20.00 0 - 1 14.29
15-30 3 60.00 2 100.00 5 71.43
31-45 0 - 0 - 0 -
46-60 0 - 0 - 0 -
> 60 0 - 0 - 0 -
Total 5 100.00 2 100.00 7 100.00
到目前为止我尝试过的是
为每个成员列应用以下内容;
forage1<-data.frame(ddply(df, .(ds), summarize,
All=length(ds),
of6Age=sum(Age1<6),
of6.15Age=sum(Age1>=6 & Age1<15),
of15.31Age=sum(Age1>=15 & Age1<31),
of31.46Age=sum(Age1>=31 & Age1<46),
of46.60Age=sum(Age1>=46 & Age1<=60),
of60Age=sum(Age1>60)))
然后将数据框合并在一起,如下所示; mylist
但这不是我应该得到的。我想要的是上面提到的表 A。请以您的善意支持启发我... 提前谢谢你...!!!
【问题讨论】: