2015-05-14 73 views
0

代码描述表:在代码说明代入编码变量中的R

Procedure X1 X2 X3 Desc 
1 3852  002 0 0 Brain 
2 3853  003 0 0 Heart 
3 3854  004 0 0 Skin 
4 3876  005 0 0 Throat 

表只与代码以及这些代码的频率:

Procedure Freq 
1 3852  22 
2 3853  3 

我想使表像这样:

Procedure Freq 
1 Brain  22 
2 Heart  3 

我已经尝试合并过程变量,但它没有工作。我用合并命令是:

总< - data.frame(合并(代码描述表,频率,通过=“程序”))

2表名是由以假乱真我不得不更换用于分析。感谢您的帮助!

Procedures 2012 2011 2010 2009 
1 PatientIDs 427  419  399  399 
2 ClaimIDs 420  407  389  391 
3 3852  0  0  0  20 
4 3853  0  0  0  8 
5 3854  0  0  0  10 

X1 Procedures X2 X3   Desc      X4 
2 0002  V26 ICD9Proc THER ULTRASOUND OF HEART THER ULTRASOUND OF 
3 0003  V26 ICD9Proc THER ULT PERIPHERAL VES  THER ULT PERIPHERAL 
4 0009  V26 ICD9Proc OTHER THERAPEUTIC ULTSND OTHER THERAPEUTIC 

回答

0

假设你的表是两个data.frames df1df2

both<-merge(df1,df2) 
both <- both[,c("Desc", "Freq")] 
colnames(both)[1] <- "Procedure" 
+0

我不相信工作。它说我需要一个变量,所以我把我的程序。我不确定这是否是正确的方法。再次感谢您的帮助。对不起,我对R –

+0

非常陌生,当我将它们合并后,我在最终数据集中得到的行数多于表中的程序和频率。 –

+0

你有更多的专栏比你向我们展示的更多吗?你能输入几行数据吗? – tcash21

0

如果第一表为df1并假设仅存在1 “商品说明” 对每个 “步骤”:

desc_map <- unique(df1[c('Procedure', 'Desc')]) 

假设第二个表是df2

df2_merged <- merge(df2, desc_map, by = 'Procedure') 

让你想要的列:

df_final <- df2_merged[c('Desc', 'Freq')] 
+0

我只是试过,但与合并,我得到了:错误fix.by(by.x,x):'由'必须指定一个唯一有效的列 –

+0

很难说,但它看起来像你的列名之一是“程序”而不是“程序”。在这种情况下,你将不得不使用合并(df2,desc_map,by.x =“Procedure”,by.y =“Procedures”) –

+0

是的,我已经试过了,对不起。我刚才确定了很多次,他们都是一样的。我让它运行,但它要么给我太少的数据要么太多的数据。 –