【发布时间】:2014-04-18 19:16:26
【问题描述】:
目前我刚刚开始学习 R 统计语言,并面临一个我几天都无法解决的问题。希望你们能帮我一把。思路如下:
- 我有一个名为 DF 的数据集,其中包含数十万条记录。数据集由 5 列组成,如下所示:DF
- CityID 格式为 5 个字符,前 2 个字符是 ProvinceID,与其他 3 个字符组合以唯一标识每个城市。
- 每个 House 都由 ProvinceID、CityID 和 House 的组合唯一标识。
- Person 被格式化为 6 个字符,前 4 个是他们的房子,结合其他 2 个字符来唯一标识每个人
-这里是示例数据的生成代码:
ProvinceID<-c(10,10,10,20,20,20,30,30,40,40,40,40,50)
CityID<-c(10001,10001,10002,20001,20002,20002,30001,30001,40001,40001,40001,40001,50001)
House<-c(0001,0001,0001,0001,0001,0002,0001,0002,0001,0001,0001,0002,0001)
Person<-c(000101,000102,000101,000101,000101,000101,000101,000101,000101,000102,000103,000101,000101)
WorkingStatus<-c(1,0,0,0,1,1,0,0,1,1,0,0,1)
DF<-cbind(ProvinceID,CityID,House,Person,WorkingStatus)
DF <-as.data.frame(DF)
我的问题是,创建一个名为“HouseIncome”的变量,如果至少一名家庭成员当前正在工作,则该变量的值为“1”(至少一名“人”的房子有 WorkingStatus ==1) .由于每个 House 只有在我们组合 3 列时才相同:“ProvinceID”、“CityID”和“House”,我只是想知道是否有任何方法将数据子集到房屋中,R 中是否有任何函数可以执行“如果至少”?
结果应如下所示:
ProvinceID<-c(10,10,20,20,20,30,30,40,40,50)
CityID<-c(10001,10002,20001,20002,20002,30001,30001,40001,40001,50001)
House<-c(0001,0001,0001,0001,0002,0001,0002,0001,0002,0001)
HouseIncome<-c(1,0,0,1,1,0,0,1,0,1)
DF1<-cbind(ProvinceID,CityID,House,HouseIncome)
【问题讨论】: