Difference in Calculation through GEO2R and difference in Article
Here are two example of calculations of logFC validated in GEO2R analysis which depends if values are already log2 transformed. During GEOQuery analysis there is calculation to transform where expression set is checked for value distribution and log2 transformation is applied-
ex &lt;- exprs(gset)
qx &lt;- as.numeric(quantile(ex, c(0., 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))
LogC &lt;- (qx[5] &gt; 100) ||
          (qx[6]-qx[1] &gt; 50 &amp;&amp; qx[2] &gt; 0)
if (LogC) { ex[which(ex &lt;= 0)] &lt;- NaN
  exprs(gset) &lt;- log2(ex) }

Example 1:
=&gt; Sample Values are already log2 Transformed
n(TumorSamples) = 45
n(ControlSamples) = 46

a = average(TumorSamples) = 9.199053111
b = average(ControlSamples) = 4.988139348

logFC = |a - b| = 4.210914

Example 2:
=&gt; Sample Values are not log2 transformed
n(TumorSamples) = 2
n(ControlSamples) = 2

a = average(log2(TumorSample1) + log2(TumorSample2) ... ) = (log2(84) + log2(21.8)) / 2 = 5.419287

b = average(log2(ControlSample1) + log2(ControlSample2) ... ) = (log2(624) + log2(665)) / 2 = 9.331306

logFC = |a - b| = 3.91202