J'ai deux ensembles de données. L'un est une moyenne des dénombrements d'insectes effectués dans une parcelle toutes les semaines ou toutes les deux semaines. L'autre est le rendement qui a été mesuré chaque semaine. J'essaie de combiner ces deux tableaux de données afin d'analyser l'impact des insectes sur le rendement.
J'ai ceci:

Et j'essaie de produire cela en JMP.
Notez que pour les semaines 44 et 45, je déplace simplement la valeur de rendement, mais pour la semaine 47, je dois additionner le rendement des semaines 46 et 47. La même chose pour la semaine 49. Pour la semaine 52, je fais la somme du rendement des semaines 50-52.
J'ai de nombreuses parcelles et des semaines inégales d'insectes et d'échantillons de rendement.
Merci pour toute aide.
Voici une méthode pour obtenir ce que vous voulez
names default to here(1);
dtInsects = New Table( "Insects",
Add Rows( 10 ),
New Column( "Week",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [39, 40, 41, 42, 43, 44, 45, 47, 49, 52] )
),
New Column( "Plot#",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[59.01, 59.01, 59.01, 59.01, 59.01, 59.01, 59.01, 59.01, 59.01, 59.01]
)
),
New Column( "Insects",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 0.2, 0.2, 3.6, 15.4, 2.6, 0.3, 0.3, 0.3, 0.7] )
)
);
dtYields = New Table( "Yields",
Add Rows( 9 ),
New Column( "Week",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [44, 45, 46, 47, 48, 49, 50, 51, 52] )
),
New Column( "Plot#",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[59.01, 59.01, 59.01, 59.01, 59.01, 59.01, 59.01, 59.01, 59.01]
)
),
New Column( "Yield",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[130.96, 343.1, 466.2, 903.59, 2611.25, 1052.88, 1335.74, 1414.32,
500.25]
)
)
);
// Join the data
dtTogether = dtInsects << Join(
With( dtYields ),
Merge Same Name Columns,
By Matching Columns( :Week = :Week, :Plot# = :Plot# ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 0 ),
Output Table( "All Together" )
);
dtTogether << New Column( "Calculated Yield",
formula(
rowNum = Row() - 1;
cumSum = :Yield;
If( Is Missing( :Yield ) == 0,
While( :Match Flag[rowNum] == 2,
cumSum = cumSum + :Yield[rowNum];
rowNum--;
)
);
cumSum;
)
);
// Make formula columns static values
dtTogether:Calculated Yield << delete formula;
// Delete rows that only came from the With Data Table
dtTogether << select where( :Match Flag == 2 ) << delete rows;
// Delete the Match Flag column
dtTogether << delete columns("Match Flag");