转换表格式

时间:2016-01-14 13:49:23

标签: r join

我的数据存在问题,希望在这里有所帮助。

从下表中

    Diam    Conc        Label
1   187.5   5198444     CP1
2   202.5   17674710    CP1
3   217.5   59262263    CP1
4   232.5   129961103   CP1
5   247.5   108127637   CP1
6   262.5   99810127    CP2
7   277.5   68619462    CP2
8   292.5   45746308    CP2
9   307.5   31190665    CP2
10  322.5   24952532    CP3
11  337.5   16635021    CP3
12  352.5   12476266    CP3
13  367.5   16635021    CP4
14  382.5   13515955    CP4
15  397.5   14555643    CP4
16  412.5   11436577    CP4

我正在尝试创建一个表格,如下所示:

length (Diam) = 15000; (from 0.1 to 1500, by 0.1)

        Diam  CP1   CP2  CP3    CP4   
1       0.0   ...   ...  ...    ...
2       0.1   ...   ...  ...    ...
3       0.2   ...   ...  ...    ...
4       0.3   ...   ...  ...    ...
5       0.4   ...   ...  ...    ...
3       0.2   ...   ...  ...    ...
4       0.3   ...   ...  ...    ...
5       0.4   ...   ...  ...    ...

我的目标是:对于表1中Conc的每个值,将此值放在相应Label列中的表2和相应的Diam值中。

1 个答案:

答案 0 :(得分:0)

首先,您需要重塑数据。我在你的第一张表中读到了int a; int B { get; set; } void F() { a = 0; G(ref a); // a will be incremented B = 0; G(ref B); // Compiler error CS0206 } void G(ref int p) { ++p; } (原文):

Units Average
32     32 
33     32
31     32
 0      0
 0      0
 1      2
 2      2
 3      2
 0      0
 1      1.5
 2      1.5

然后你可以使用包o来产生内部关节:

o <- reshape(o,idvar="Diam",timevar="Label",direction="wide")

然后我们需要定义一个目标表data.table(注意我使用了原始表的Diam的较低和较高值。如果你想要序列中的15000+步,你和& #39;我需要相应地调整代码):

library(data.table)
setDT(o,Diam)

并将其设为数据表:

dest

然后执行联合:

 dest <- data.frame(diam=seq(min(o$Diam),max(o$Diam),1))