【发布时间】:2019-12-06 08:33:53
【问题描述】:
我的数据如下所示:
df<-data.frame(
hhid = c(5668,5595,4724,4756,4856,4730,4757,6320,4758,6319,6311,5477,6322),
pid=c(93660,93660,100960,100960,100960,100960,100960,100962,100960,100962,100962,93814,100962),
pname=c("AB","HG","DC","DC","DC","DC","DC","BA","DC","BA","BA","BH","BA"),
vid=c(462962,608757,772284,772284,772284,293475,293475,656323,293475,656323,81533,465612,656323),
vname=c("ABCD","KJUI","HIND","HIND","HIND","KAJA","KAJA","ADAR","KAJA","ADAR","SANG","NARI","ADAR"),
me=c(1,1,0,0,0,0,0,1,0,0,0,1,0),
ls=c(0,0,1,1,0,1,0,0,1,0,0,0,1),
lg=c(0,0,0,0,0,0,1,0,0,1,0,0,0),
lo=c(0,0,0,0,1,0,0,0,0,0,1,0,0),
amt=c(20000,20000,14000,14000,14000,14000,14000,27000,14000,27000,27000,20000,23000))
此数据中有超过 20000 行。 hhid,pid,pname,vid,vname,ls,lg,lo,amt 是列名。每个 hhid 都是独一无二的。
我需要的输出是这样的:
hhid pid pname vid vname LOS amt
5668 93660 AB 462962 ABCD me 20000
5595 93660 HG 608757 KJUI me 20000
4724 100960 DC 772284 HIND ls 14000
4756 100960 DC 772284 HIND ls 14000
4856 100960 DC 772284 HIND lo 14000
and so on.
所以基本上我想要的是用包含列名 me、ls、lg、lo 作为新行数据的 NEW COLUMN LOS 替换 me、ls、lg、lo 列中的 1。即用列名替换 1s 和将其保存到新列 LOS。
【问题讨论】:
标签: r