Я хотел бы построить ggplot с этими данными, но я продолжаю получать ошибку
"Error in if (max_y < 0.75) max_y = 0.75 : missing value where TRUE/FALSE needed"
Ниже приведены мои данные (то есть, они называются cumtable
):
X1 X2
cummean 1 NaN
X 2 NaN
X.1 3 NaN
X.2 4 0.085958396
X.3 5 0.579000051
X.4 6 NaN
X.5 7 0.828634359
X.6 8 NaN
X.7 9 NaN
X.8 10 0.286389237
X.9 11 0.060052680
X.10 12 NaN
X.11 13 0.523594292
X.12 14 0.114135103
X.13 15 NaN
X.14 16 NaN
X.15 17 NaN
X.16 18 NaN
X.17 19 0.740793870
X.18 20 0.709364041
X.19 21 0.483116357
X.20 22 NaN
X.21 23 NaN
X.22 24 0.995054034
X.23 25 0.783238116
X.24 26 NaN
X.25 27 NaN
X.26 28 0.578728321
X.27 29 1.023346667
X.28 30 0.777934859
X.29 31 0.898343165
X.30 32 0.484138182
X.31 33 0.074883785
X.32 34 0.430788239
X.33 35 0.483925567
X.34 36 NaN
X.35 37 0.484475666
X.36 38 NaN
X.37 39 0.428624931
X.38 40 0.098168286
X.39 41 NaN
X.40 42 0.923720114
X.41 43 0.891545077
X.42 44 0.557582982
X.43 45 0.162431464
X.44 46 0.698346912
X.45 47 0.963385003
X.46 48 0.130043928
X.47 49 0.777339044
X.48 50 0.188371148
X.49 51 NaN
X.50 52 0.969137929
X.51 53 0.083899745
X.52 54 0.110960336
X.53 55 NaN
X.54 56 NaN
X.55 57 NaN
X.56 58 0.770282794
X.57 59 NaN
X.58 60 0.495483189
X.59 61 0.466880181
X.60 62 0.915412418
X.61 63 0.340461942
X.62 64 0.284567410
X.63 65 NaN
X.64 66 0.764779562
X.65 67 9.021032202
X.66 68 0.717319265
X.67 69 NaN
X.68 70 0.660980523
X.69 71 0.278495425
X.70 72 0.327933658
X.71 73 0.415319194
X.72 74 0.605468929
X.73 75 0.636267888
X.74 76 0.610612250
X.75 77 0.848616067
X.76 78 NaN
X.77 79 0.524346792
X.78 80 0.858387070
X.79 81 NaN
X.80 82 0.885703729
X.81 83 0.571135262
X.82 84 0.363989504
X.83 85 -0.003483148
X.84 86 NaN
X.85 87 NaN
X.86 88 0.604364690
X.87 89 NaN
X.88 90 -1.485618961
X.89 91 NaN
X.90 92 0.790697810
X.91 93 NaN
X.92 94 0.670599183
X.93 95 0.082025677
X.94 96 NaN
X.95 97 0.618979367
X.96 98 NaN
X.97 99 0.570178950
X.98 100 NaN
Вот мои коды:
trial1 = cumtable
max_y = ceiling(max(trial1$X2))
if (max_y < .75) max_y = .75
min_y = floor(min(trial1$X2))
if (min_y > .4) min_y = .4
last_mean = round(trial1[nrow(trial),2],9)
plot1 = ggplot(trial1, aes(x=index,y=cum_mean)) +
geom_line(colour = "blue") +
geom_abline(intercept=0.5,slope=0, color = 'red', size=.5) +
theme(plot.title = element_text(size=rel(1.5)),
panel.background = element_rect()) +
labs(x = "n (number of tosses)",
y = "Cumulative Average") +
scale_y_continuous(limits = c(min_y, max_y)) +
scale_x_continuous(trans = "log10",
breaks = trans_breaks("log10",function(x) 10^x),
labels = trans_format("log10",math_format(10^.x))) +
annotate("text",
label=paste("Cumulative mean =", last_mean,
"\nEV =", prob,
"\nSample size =", nflip),
y=(max_y - .20),
x=10^(log10(nflip)/2), colour="darkgreen") +
annotate("text",
label=paste("P(Heads)=", prob),
y=(max_y - .80),
x=10^(log10(nflip)/2), colour="red")
Я думал, что это из-за last_mean = round(trial1[nrow(trial),2],9)
(строка 6), поэтому я удалил эту строку, но все еще получаю ту же ошибку.
Я также пытался удалить все строки с помощью NA, но все равно получаю ту же ошибку, и я беспокоюсь, что получу дискретный график.Я не хочу удалять какие-либо NA, но вместо этого заменяю их как незаполненные точки в ggplot.
Цели:
успешно графggplot с данными,
NaN будет отображаться как незаполненная точка на ggplot.