Error in imputation values with missing values in MFA - r

My data structure is based in 151 individuals x 51 variables (1 categorical variable made up by 3 categories or groups(OO, NUTS, LFD), and 50 continuous numerical variables). The background of the experiment is based in 3 interventions in which patients go through different treatments. The variables are gene expression results in the form of numbers, which I intend to form clusters or to observe groups.
Of course, there are MISSING values. The missing values due to lack of samples of the individuals could be related to the clinical trial itself. However, in my database, the one I am going to attach a slice sample, missingness I would say is completely at random. Why is that? The individuals that attended to periodical meetings, get their blood collected and afterwards due to processing erros, have several genes amplified, and others not amplified, from my standpoint, is random. It is true that in the origin could be related somehow to the clinical trial.
Reviewing the potential approaches, I found the missMDA package, which I have been reviewing lately. My first doubt, which I think is correct is to confirm if the MFA is the best approach to analyse my database. Other options could be:
PCA excluding the categorical variable to run quantitative variables?
FAMD looks like more to combine quantitative and qualitative, not very much as a grouping variable as it is my case
The 'gene' example database (provided in missMDA package) is similar to mine, and the approach is MFA, and the theorical basis (I am not an expert) looks like to me correct. However following the steps in 'missMDA: A Package for Handling Missing Values
in Multivariate Data Analysis' I find the next errors (I have tried several options formulating the group):
#The ncp estimated excluding the group using PCA approach (just quantiative continuous variabes was 5, the variables are scaled type = "s"
res.mfa <- imputeMFA(PCA[, -1], group = c(2:51), type = "s", ncp = 5)
# Error in if (type[g] == "s") { : missing value where TRUE/FALSE needed
res.mfa <- imputeMFA(df[, -1], group = 50, type = "s", ncp = 5)
#Error in (cumsum(group.mod)[g - 1] + 1):cumsum(group.mod)[g] : NA/NaN argument
The df example reduced to body limitation (is already standardized (scale funtion))
df <- structure(list(grup_int = structure(c(3L, 3L, 3L, 2L, 3L, 1L,
1L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 2L,
1L, 1L, 1L, 3L, 3L, 2L, 3L, 1L, 1L, 3L, 3L, 1L, 3L, 2L, 3L, 2L,
1L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 2L,
1L, 2L, 1L, 1L, 3L, 2L, 1L, 2L, 2L, 1L, 3L, 3L, 3L, 3L, 1L, 2L,
1L, 2L, 1L, 3L, 2L, 2L, 1L, 2L, 2L, 1L, 3L, 1L, 2L, 1L, 1L, 2L,
2L, 2L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 2L, 2L, 2L, 2L, 1L,
2L, 3L, 2L, 2L, 3L, 2L, 2L, 1L, 1L, 2L, 3L, 2L, 2L, 1L, 1L, 1L,
1L, 3L, 2L, 3L, 3L, 1L, 3L, 3L, 2L, 2L, 3L, 1L, 1L, 2L, 2L, 2L,
3L), levels = c("OO", "NUTS", "LFD"), label = "GENERAL: Grupo de intervención", class = "factor"),
ppara = structure(c(2.882, -0.091, -0.519, NA, NA, NA, 0.102,
NA, NA, -0.292, NA, 0.73, 0.555, -0.11, -1.022, -0.027, 0.114,
NA, 0.593, -0.768, -0.53, NA, NA, -0.224, -0.327, -0.952,
-0.185, NA, NA, -0.52, -1.175, 0.286, NA, -0.398, NA, -0.144,
NA, NA, NA, -0.903, NA, -0.258, -0.897, -0.751, -0.662, -0.628,
-0.779, NA, NA, 0.743, 0.142, NA, NA, NA, NA, -0.607, -0.739,
-0.437, NA, -1.152, -1.272, 0.608, 1.317, -0.547, 3.081,
0.647, -0.799, -0.682, -0.354, NA, 0.031, NA, 1.992, 3.665,
NA, NA, -0.027, -0.318, -0.916, NA, NA, NA, -0.31, -1.113,
-0.089, -0.391, NA, 0.134, -0.574, -0.291, -0.012, NA, NA,
-0.607, NA, -1.018, -0.702, NA, 1.624, 0.841, 0.869, NA,
0.373, -0.857, 0.007, 0.099, NA, -0.613, -0.005, 1.059, 1.525,
2.504, NA, NA, -0.737, -0.864, NA, NA, -0.901, -0.257, 0.968,
NA, -0.743, -0.023, NA, NA, NA, -0.219, NA, 0.226, -0.366,
-0.788, NA, -0.942, -0.215, NA, -0.659, -0.532, 3.052, 1.426,
NA, 0.366, -0.52, 0.377, NA, 1.421, NA, NA, NA, NA, NA), dim = c(151L,
1L), "`scaled:center`" = 1.35197894736842, "`scaled:scale`" = 0.835827593173089),
ppard = structure(c(0.214, -0.376, -0.152, -0.121, -0.147,
0.681, 0.373, 0.144, 0.291, -0.554, -0.344, -0.463, 0.565,
-0.612, -1.073, -0.038, 0.373, -0.801, 0.052, -0.765, -0.891,
0.56, 0.059, -0.396, -0.447, -0.83, -0.088, -0.543, -0.126,
-0.678, -0.769, 0.079, NA, -0.345, NA, -0.12, -0.845, 0.182,
-0.234, -0.785, 0.257, -0.035, -0.426, -0.428, -0.668, -0.51,
-0.626, -0.264, -0.588, -0.508, -0.184, NA, 2.647, -0.403,
-0.99, -0.727, 0.047, -0.487, -0.286, -0.865, -0.841, 3.273,
0.653, -0.439, 3.509, 0.653, -0.971, -0.298, -0.343, NA,
0.44, 0.143, 0.847, 5.239, 0.973, 2.861, 0.36, -0.538, 4.029,
-0.154, -0.361, -0.047, -0.222, -1.302, -0.047, -0.005, NA,
0.507, -0.244, -0.38, -0.116, -0.958, NA, -0.194, NA, -0.713,
-0.498, 0.239, 0.405, 1.012, 0.542, 0.22, 0.846, -0.455,
-0.003, 0.477, -0.096, -0.301, 0.85, 0.575, 0.606, 0.713,
NA, -1.197, -0.766, -0.846, -0.583, -0.53, -0.246, -1.062,
-0.221, -0.265, -1.083, -0.449, -1.117, -0.899, 0.146, -0.561,
-0.471, 0.171, -0.263, -0.33, 0.028, -0.625, -0.564, 4.08,
-0.444, 0.092, 0.581, 0.14, -0.112, -0.349, 0.198, 0.077,
NA, -0.409, NA, 0.05, 0.489, NA, 0.903), dim = c(151L, 1L
), "`scaled:center`" = 1.40111428571429, "`scaled:scale`" = 0.811830324669782),
pparg = structure(c(1.298, -0.171, 0.056, 0.017, -0.428,
0.257, 0.719, -0.1, 1.28, -0.19, 0.344, -0.629, 1.572, -0.713,
-0.739, 1.027, 0.22, -0.321, -1.283, -1.283, 0.1, -0.38,
0.257, -0.325, -0.572, -0.705, -0.442, -1.129, NA, -1.129,
-0.869, 2.129, NA, 0.044, NA, -0.352, -0.568, 1.976, -0.823,
-0.843, 0.529, -0.046, -0.223, -0.646, -0.308, 0.227, 0.028,
-0.352, -0.097, 0.054, -0.512, NA, 3.624, 0.399, -0.588,
-0.986, -0.672, -0.612, 0.362, -1.199, -0.896, -0.675, 0.354,
-0.641, 3.271, 0.3, -1.196, -0.789, -0.285, NA, -0.244, -0.156,
1.765, 4.562, 1.241, NA, -0.407, -0.84, 2.605, 0.016, -0.619,
-0.317, -0.472, -1.337, -0.555, -0.932, NA, 0.312, -0.4,
-1.241, 0.22, -0.937, NA, -0.134, NA, -0.241, -0.176, 0.138,
-0.716, 0.312, 0.061, -0.682, 0.609, 0.174, -0.07, -0.554,
-0.224, 0.107, 0.228, 0.491, 2.581, 1.164, NA, -0.368, -0.816,
-0.471, -0.126, -0.144, -0.281, -0.635, 0.618, 0.649, -1.601,
-0.913, -1.271, -0.756, 0.529, 0.047, -0.922, 1.729, -1.05,
0.01, 0.8, 1.488, 0.452, 1.876, -0.13, 0.485, -0.041, 0.211,
-0.859, -0.621, -0.515, -0.177, NA, -0.632, NA, -0.545, 1.322,
NA, 1.602), dim = c(151L, 1L), "`scaled:center`" = 1.2910652173913, "`scaled:scale`" = 0.700929843387113),
nr1h3 = structure(c(0.407, 0.244, -0.42, -0.013, -0.829,
0.492, 0.881, 0.171, -0.709, 0.22, 0.026, -0.45, 0.262, 1.012,
-0.847, 0.484, -0.607, -0.601, -0.821, -0.194, -0.568, 0.673,
-0.607, -0.458, -0.494, -0.492, 0.623, -0.93, -0.058, -0.41,
-0.784, 0.052, -2.094, 0.07, NA, 0.272, 0.024, 0.458, 0.832,
-0.75, 0.074, 0.766, -0.158, 0.463, -0.184, -0.469, -0.269,
-0.387, -0.337, -0.271, 1.308, NA, NA, -0.497, -0.944, -1.006,
-1.024, -0.783, 0.276, -1.132, -0.827, -0.343, 2.697, -0.497,
NA, 0.897, NA, -0.294, 0.517, NA, 0.236, 0.241, 0.679, NA,
2.847, 2.11, 0.069, 1.473, 4.445, NA, NA, NA, -0.207, -1.697,
-0.069, 0.105, NA, 1.004, NA, NA, -0.428, -1.257, NA, 1.736,
NA, -0.691, 0.09, 0.226, 0.674, -0.55, 0.699, -0.258, 0.906,
-0.691, 0.768, 0.484, -0.199, -0.62, 0.128, 0.742, 2.149,
0.737, NA, -1.296, NA, -0.545, 0.495, -0.888, -0.926, -0.97,
-0.279, -0.028, -1.396, -1.321, -1.254, -0.858, -0.592, -0.691,
-0.885, 0.077, 0.641, -0.643, -0.286, -0.932, -0.77, 4.228,
-0.589, 0.254, 0.947, -0.461, -0.469, 0.023, -0.476, -0.071,
NA, -0.445, NA, -0.207, 0.469, NA, 2.62), dim = c(151L, 1L
), "`scaled:center`" = 1.30208396946565, "`scaled:scale`" = 0.609461200104939),
nr1h2 = structure(c(-0.49, 0.333, -0.525, -0.673, -0.442,
-0.029, 0.504, 0.169, -0.193, -0.641, -0.405, 0.01, 1.152,
0.002, -0.478, -0.514, -0.077, -0.61, -0.404, -0.544, -0.434,
0.448, 0.162, -0.463, -0.447, -0.81, -0.209, -0.194, 0.637,
-0.427, -0.366, -0.211, -1.252, -0.205, NA, -0.003, -0.277,
0.027, 0.172, -0.569, 0.343, 0.601, -0.468, -0.254, 0.001,
0.092, -0.416, -0.224, -0.518, -0.356, -0.401, NA, 1.952,
-0.607, -0.721, -0.481, -0.375, -0.499, -0.01, -0.822, -0.704,
0.01, 0.686, -0.429, 6.483, 0.214, -0.302, 0.019, -0.323,
NA, 0.566, 0.441, 0.273, 2.845, 0.409, 4.469, 0.115, -0.21,
4.747, 0.324, -0.453, -0.528, -0.057, -0.943, -0.463, -0.127,
NA, 0.056, -0.343, -0.05, -0.539, -0.785, NA, -0.327, NA,
-0.466, -0.413, -0.181, 0.43, 0.548, -0.098, 0.565, 0.487,
-0.571, 0.046, 0.251, 0.113, 0.382, 0.343, 0.919, 0.215,
0.433, NA, -0.757, -0.711, -0.656, -0.525, -0.482, -0.268,
-0.714, -0.101, 0.093, -0.493, -0.626, -0.845, -0.7, -0.48,
-0.404, -0.668, -0.028, 0.2, -0.506, -0.078, -0.84, -0.54,
3.735, -0.366, -0.326, 0.271, 0.199, -0.624, -0.504, 0.573,
-0.131, NA, -0.212, NA, 0.092, 0.175, NA, 0.61), dim = c(151L,
1L), "`scaled:center`" = 1.38648936170213, "`scaled:scale`" = 1.07206008371747),
rxra = structure(c(0.003, -0.137, -0.372, -0.339, 0.001,
-0.083, 0.371, -0.04, -0.286, -0.707, -0.405, 0.067, 0.205,
-0.515, -0.48, -0.25, -0.28, -0.408, -0.649, -0.735, -0.722,
0.391, -0.008, 0.584, -0.517, -0.531, -0.268, -0.405, NA,
0.39, -0.025, -0.02, NA, -0.119, NA, -0.586, -0.449, -0.152,
-0.343, -0.126, -0.528, 0.012, -0.769, 0.074, -0.213, -0.501,
-0.624, -0.602, -0.847, -0.655, -0.619, NA, 2.641, -0.764,
-0.931, -0.833, 0.084, -0.065, -0.135, -0.77, -0.665, 0.893,
0.544, -0.512, 7.66, 0.111, -0.297, 0.248, -0.305, NA, 0.041,
0.515, 0.562, 4.191, 0.701, 1.726, -0.371, -0.225, 2.191,
0.063, -0.714, 0.049, 0.049, -1.099, -0.875, -0.101, NA,
-0.152, -0.058, 0.084, -0.564, -0.49, NA, 0.138, NA, -0.592,
-0.782, 0.033, 0.165, 0.161, 0.576, 1.449, 2.191, -0.21,
-0.182, 0.547, 0.163, 0.057, 1.104, 0.842, 0.208, 0.941,
NA, -0.817, -0.543, -0.4, -0.344, -0.747, -0.811, -1.077,
-0.334, 0.312, -0.541, -0.726, -0.872, -0.365, -0.232, 0.04,
-0.334, -0.111, -0.304, -0.476, 0.172, -0.389, -0.233, 3.064,
-0.104, -0.063, -0.049, 0.686, -0.851, -0.243, -0.098, 0.067,
NA, -0.076, NA, 0.112, 0.429, NA, 0.241), dim = c(151L, 1L
), "`scaled:center`" = 1.39937410071942, "`scaled:scale`" = 0.869319134487005),
rxrb = structure(c(-0.489, -0.548, 0.591, 0.137, 0.814, 0.161,
-0.204, -0.242, -0.408, -0.65, -0.242, 0.987, 0.468, -0.6,
-1.373, -0.739, -0.917, -0.565, -0.633, -0.833, -0.81, 0.509,
0.217, 0.388, -0.067, -0.614, -0.055, -0.185, 0.416, 0.94,
-0.399, 0.106, -1.652, -0.902, NA, -0.224, -0.289, -0.568,
0.219, -0.61, -0.913, 0.299, -0.743, -0.183, -0.251, -0.699,
-1.232, -0.43, -0.297, -0.664, -0.273, NA, 3.264, 0.207,
-0.849, -0.253, -0.134, -0.762, 0.206, -0.693, -0.627, 0.747,
-0.139, -0.043, 4.043, 0.643, -0.319, -0.16, -0.185, NA,
0.083, 0.399, 0.147, 6.611, 0.054, -1.572, 0.721, -0.009,
-1.597, -0.062, 1.607, 0.272, -0.169, -1.139, 1.191, 0.293,
NA, 0.196, 0.383, -0.531, 0.02, 3.971, NA, 0.246, NA, -0.154,
-0.51, 0.083, 0.838, 0.19, 0.446, 0.083, 0.219, 1.676, -0.353,
0.421, -0.163, 0.091, 0.758, 0.625, 0.79, 0.084, NA, -0.956,
-0.775, -0.26, -0.446, -0.898, -0.439, -0.713, -0.93, -0.587,
-0.918, -0.161, -0.408, -0.216, -0.311, -0.168, 0.107, 0.15,
0.634, 0.853, 0.179, -0.47, -0.796, -1.533, 0.429, -0.155,
0.578, 0.741, 0.193, 0.067, -0.334, -0.016, NA, -0.006, NA,
0.053, 0.837, NA, -0.265), dim = c(151L, 1L), "`scaled:center`" = 1.39233333333333, "`scaled:scale`" = 0.828513485248186),
cyp27a1 = structure(c(-0.366, -0.342, -0.257, -0.731, 0.498,
-0.251, 1.016, -0.209, 0.086, -0.84, 0.399, -0.466, 0.022,
-0.54, -0.085, 0.018, -0.248, -0.82, -0.666, -0.821, -0.443,
0.187, -0.135, -0.433, 0.494, -0.57, -0.332, -0.088, NA,
-0.004, -0.705, 0.502, NA, -0.313, NA, -0.471, -0.423, -0.398,
-0.272, -0.82, 0.102, 0.183, -0.703, -0.155, -0.437, -0.427,
-0.739, -0.292, -0.586, -0.574, -0.284, NA, NA, -0.42, -1.099,
-0.879, -0.527, -0.609, -0.227, -0.827, -0.765, 6.111, 1.02,
-0.66, NA, 0.53, -0.424, 0.055, -0.184, NA, 0.633, 0.364,
0.418, NA, 0.229, 2.879, -0.264, -0.285, 3.73, 0.569, 0.053,
-0.368, -0.2, -1.217, -0.249, -0.318, NA, 0.37, 0.15, -0.23,
0.258, -0.623, NA, 0.183, NA, -0.321, -0.534, 0.537, -0.046,
0.809, 0.899, 1.415, 1.484, -0.158, -0.109, 0.863, -0.256,
0.281, 0.94, 1.062, 1.988, 0.064, NA, -0.455, -0.959, -0.437,
-0.657, -0.82, 0.022, -0.927, -0.821, 0.878, -1.189, -0.121,
-1.278, -0.811, -0.653, -0.54, -0.576, -0.266, 0.11, -0.433,
-0.075, -0.617, -0.682, 4.587, 0.149, -0.146, 0.384, 0.917,
-0.38, -0.17, 0.082, -0.301, NA, -0.176, NA, 0.135, -0.007,
NA, 2.875), dim = c(151L, 1L), "`scaled:center`" = 1.37367647058824, "`scaled:scale`" = 0.862860015103544),
abca1 = structure(c(-0.275, 0.339, -0.655, -0.414, -0.611,
0.548, -0.053, -0.25, 0.157, -0.472, -0.555, -0.329, 0.027,
-0.017, -0.442, 0.044, -0.191, -0.52, -0.685, -0.778, -0.503,
0.33, 0.045, -0.593, -0.279, -0.651, -0.192, 0.161, -0.159,
0.023, -0.304, 1.422, NA, -0.06, NA, -0.379, -0.488, -0.313,
-0.336, -0.056, -0.7, -0.563, -0.631, -0.275, -0.742, -0.394,
-0.655, -0.432, -0.616, -0.642, -0.141, NA, 0.3, -0.336,
-0.975, -0.667, -0.418, -0.325, 0.318, -0.852, -0.577, -0.766,
0.772, -0.559, 7.974, 0.385, -0.653, -0.261, -0.474, NA,
-0.007, 0.203, 0.908, 2.893, 1.629, 1.134, -0.125, 0.149,
4.345, 1.047, 0.223, -0.071, -0.296, -0.814, -0.64, 0.255,
NA, -0.277, -0.065, 0.479, -0.375, -0.422, NA, 0.292, NA,
-0.422, 0.515, 0.309, 0.11, 0.717, 0.468, 1.66, 1.869, -0.286,
0.075, 0.288, 0.092, -0.088, 0.473, -0.19, 0.548, 0.37, NA,
-0.824, -0.697, -0.561, -0.549, -0.529, -0.846, -0.768, -0.818,
0.101, -0.316, -0.727, -0.192, -0.498, -0.784, 0.324, -0.654,
0.626, -0.297, -0.268, -0.002, -0.21, -0.193, 2.531, 0.516,
-0.403, -0.064, 0.461, -0.481, 0.154, 0.215, -0.275, NA,
-0.527, NA, -0.642, 0.003, NA, 0.59), dim = c(151L, 1L), "`scaled:center`" = 1.66513571428571, "`scaled:scale`" = 1.46050537823946)), row.names = c("50109018",
"50109019", "50109025", "50109026", "50109027", "50118001", "50202099",
"50203004", "50203006", "50203008", "50203009", "50203010", "50203011",
"50203012", "50203013", "50203014", "50203015", "50203016", "50203017",
"50203019", "50203020", "50203022", "50203026", "50203027", "50203029",
"50203030", "50203031", "50203032", "50430001", "50508026", "50508027",
"50521001", "50521002", "50527001", "50601001", "50705001", "60901020",
"60901021", "60901023", "60901024", "60901026", "60901027", "60901028",
"60901029", "60901030", "60901031", "60901033", "60901034", "60901035",
"60901036", "60901037", "60901038", "70107034", "70111021", "70111022",
"70111023", "70111024", "70201047", "70204055", "70204056", "70211014",
"70710002", "70713001", "70713002", "70802011", "70802012", "70802013",
"70802015", "71801001", "71801002", "71801003", "110104017",
"110104019", "110104023", "110104024", "110104027", "110104028",
"110104029", "110104030", "110110005", "110113001", "110113003",
"110113005", "110113006", "110113007", "110113008", "110606056",
"110606061", "111201006", "111201007", "111201014", "111201017",
"111201019", "111201026", "111202007", "111202009", "111202015",
"120715011", "120715012", "120715019", "120715020", "120715021",
"120715022", "120715025", "120715026", "120715027", "120715029",
"120715030", "120715032", "120715033", "120715034", "120715035",
"120715037", "130102008", "130102009", "130102010", "130102012",
"130102013", "130102014", "130104004", "130105044", "130105045",
"130106034", "130106037", "130106038", "130108008", "130108009",
"140101088", "140101091", "140101096", "140101097", "140101099",
"140102087", "140102088", "140102089", "140102090", "140102092",
"140102095", "140103019", "140103020", "140103023", "140103024",
"140103026", "140103027", "140103028", "140103029", "140103030",
"140103033", "140103035", "140103036", "140103038"), class = "data.frame")

It seems like there was a problem where the number of groups is 1. There are a few lines of code that look like:
for (g in 2:length(group))
ind.var[[g]] <- (cumsum(group.mod)[g - 1] + 1):cumsum(group.mod)[g]
With one group, this fails because rather than counting up from 2 to the number of groups, it's counting down from 2 to 1. If you make this line active only if the length(group) > 1 with an if() statement, then it works. I implemented this in a fork of the missMDA package from CRAN. Here's how an example.
df <- structure(list(grup_int = structure(c(3L, 3L, 3L, 2L, 3L, 1L,
1L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 2L,
1L, 1L, 1L, 3L, 3L, 2L, 3L, 1L, 1L, 3L, 3L, 1L, 3L, 2L, 3L, 2L,
1L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 2L,
1L, 2L, 1L, 1L, 3L, 2L, 1L, 2L, 2L, 1L, 3L, 3L, 3L, 3L, 1L, 2L,
1L, 2L, 1L, 3L, 2L, 2L, 1L, 2L, 2L, 1L, 3L, 1L, 2L, 1L, 1L, 2L,
2L, 2L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 2L, 2L, 2L, 2L, 1L,
2L, 3L, 2L, 2L, 3L, 2L, 2L, 1L, 1L, 2L, 3L, 2L, 2L, 1L, 1L, 1L,
1L, 3L, 2L, 3L, 3L, 1L, 3L, 3L, 2L, 2L, 3L, 1L, 1L, 2L, 2L, 2L,
3L), levels = c("OO", "NUTS", "LFD"), label = "GENERAL: Grupo de intervención", class = "factor"),
ppara = structure(c(2.882, -0.091, -0.519, NA, NA, NA, 0.102,
NA, NA, -0.292, NA, 0.73, 0.555, -0.11, -1.022, -0.027, 0.114,
NA, 0.593, -0.768, -0.53, NA, NA, -0.224, -0.327, -0.952,
-0.185, NA, NA, -0.52, -1.175, 0.286, NA, -0.398, NA, -0.144,
NA, NA, NA, -0.903, NA, -0.258, -0.897, -0.751, -0.662, -0.628,
-0.779, NA, NA, 0.743, 0.142, NA, NA, NA, NA, -0.607, -0.739,
-0.437, NA, -1.152, -1.272, 0.608, 1.317, -0.547, 3.081,
0.647, -0.799, -0.682, -0.354, NA, 0.031, NA, 1.992, 3.665,
NA, NA, -0.027, -0.318, -0.916, NA, NA, NA, -0.31, -1.113,
-0.089, -0.391, NA, 0.134, -0.574, -0.291, -0.012, NA, NA,
-0.607, NA, -1.018, -0.702, NA, 1.624, 0.841, 0.869, NA,
0.373, -0.857, 0.007, 0.099, NA, -0.613, -0.005, 1.059, 1.525,
2.504, NA, NA, -0.737, -0.864, NA, NA, -0.901, -0.257, 0.968,
NA, -0.743, -0.023, NA, NA, NA, -0.219, NA, 0.226, -0.366,
-0.788, NA, -0.942, -0.215, NA, -0.659, -0.532, 3.052, 1.426,
NA, 0.366, -0.52, 0.377, NA, 1.421, NA, NA, NA, NA, NA), dim = c(151L,
1L), "`scaled:center`" = 1.35197894736842, "`scaled:scale`" = 0.835827593173089),
ppard = structure(c(0.214, -0.376, -0.152, -0.121, -0.147,
0.681, 0.373, 0.144, 0.291, -0.554, -0.344, -0.463, 0.565,
-0.612, -1.073, -0.038, 0.373, -0.801, 0.052, -0.765, -0.891,
0.56, 0.059, -0.396, -0.447, -0.83, -0.088, -0.543, -0.126,
-0.678, -0.769, 0.079, NA, -0.345, NA, -0.12, -0.845, 0.182,
-0.234, -0.785, 0.257, -0.035, -0.426, -0.428, -0.668, -0.51,
-0.626, -0.264, -0.588, -0.508, -0.184, NA, 2.647, -0.403,
-0.99, -0.727, 0.047, -0.487, -0.286, -0.865, -0.841, 3.273,
0.653, -0.439, 3.509, 0.653, -0.971, -0.298, -0.343, NA,
0.44, 0.143, 0.847, 5.239, 0.973, 2.861, 0.36, -0.538, 4.029,
-0.154, -0.361, -0.047, -0.222, -1.302, -0.047, -0.005, NA,
0.507, -0.244, -0.38, -0.116, -0.958, NA, -0.194, NA, -0.713,
-0.498, 0.239, 0.405, 1.012, 0.542, 0.22, 0.846, -0.455,
-0.003, 0.477, -0.096, -0.301, 0.85, 0.575, 0.606, 0.713,
NA, -1.197, -0.766, -0.846, -0.583, -0.53, -0.246, -1.062,
-0.221, -0.265, -1.083, -0.449, -1.117, -0.899, 0.146, -0.561,
-0.471, 0.171, -0.263, -0.33, 0.028, -0.625, -0.564, 4.08,
-0.444, 0.092, 0.581, 0.14, -0.112, -0.349, 0.198, 0.077,
NA, -0.409, NA, 0.05, 0.489, NA, 0.903), dim = c(151L, 1L
), "`scaled:center`" = 1.40111428571429, "`scaled:scale`" = 0.811830324669782),
pparg = structure(c(1.298, -0.171, 0.056, 0.017, -0.428,
0.257, 0.719, -0.1, 1.28, -0.19, 0.344, -0.629, 1.572, -0.713,
-0.739, 1.027, 0.22, -0.321, -1.283, -1.283, 0.1, -0.38,
0.257, -0.325, -0.572, -0.705, -0.442, -1.129, NA, -1.129,
-0.869, 2.129, NA, 0.044, NA, -0.352, -0.568, 1.976, -0.823,
-0.843, 0.529, -0.046, -0.223, -0.646, -0.308, 0.227, 0.028,
-0.352, -0.097, 0.054, -0.512, NA, 3.624, 0.399, -0.588,
-0.986, -0.672, -0.612, 0.362, -1.199, -0.896, -0.675, 0.354,
-0.641, 3.271, 0.3, -1.196, -0.789, -0.285, NA, -0.244, -0.156,
1.765, 4.562, 1.241, NA, -0.407, -0.84, 2.605, 0.016, -0.619,
-0.317, -0.472, -1.337, -0.555, -0.932, NA, 0.312, -0.4,
-1.241, 0.22, -0.937, NA, -0.134, NA, -0.241, -0.176, 0.138,
-0.716, 0.312, 0.061, -0.682, 0.609, 0.174, -0.07, -0.554,
-0.224, 0.107, 0.228, 0.491, 2.581, 1.164, NA, -0.368, -0.816,
-0.471, -0.126, -0.144, -0.281, -0.635, 0.618, 0.649, -1.601,
-0.913, -1.271, -0.756, 0.529, 0.047, -0.922, 1.729, -1.05,
0.01, 0.8, 1.488, 0.452, 1.876, -0.13, 0.485, -0.041, 0.211,
-0.859, -0.621, -0.515, -0.177, NA, -0.632, NA, -0.545, 1.322,
NA, 1.602), dim = c(151L, 1L), "`scaled:center`" = 1.2910652173913, "`scaled:scale`" = 0.700929843387113),
nr1h3 = structure(c(0.407, 0.244, -0.42, -0.013, -0.829,
0.492, 0.881, 0.171, -0.709, 0.22, 0.026, -0.45, 0.262, 1.012,
-0.847, 0.484, -0.607, -0.601, -0.821, -0.194, -0.568, 0.673,
-0.607, -0.458, -0.494, -0.492, 0.623, -0.93, -0.058, -0.41,
-0.784, 0.052, -2.094, 0.07, NA, 0.272, 0.024, 0.458, 0.832,
-0.75, 0.074, 0.766, -0.158, 0.463, -0.184, -0.469, -0.269,
-0.387, -0.337, -0.271, 1.308, NA, NA, -0.497, -0.944, -1.006,
-1.024, -0.783, 0.276, -1.132, -0.827, -0.343, 2.697, -0.497,
NA, 0.897, NA, -0.294, 0.517, NA, 0.236, 0.241, 0.679, NA,
2.847, 2.11, 0.069, 1.473, 4.445, NA, NA, NA, -0.207, -1.697,
-0.069, 0.105, NA, 1.004, NA, NA, -0.428, -1.257, NA, 1.736,
NA, -0.691, 0.09, 0.226, 0.674, -0.55, 0.699, -0.258, 0.906,
-0.691, 0.768, 0.484, -0.199, -0.62, 0.128, 0.742, 2.149,
0.737, NA, -1.296, NA, -0.545, 0.495, -0.888, -0.926, -0.97,
-0.279, -0.028, -1.396, -1.321, -1.254, -0.858, -0.592, -0.691,
-0.885, 0.077, 0.641, -0.643, -0.286, -0.932, -0.77, 4.228,
-0.589, 0.254, 0.947, -0.461, -0.469, 0.023, -0.476, -0.071,
NA, -0.445, NA, -0.207, 0.469, NA, 2.62), dim = c(151L, 1L
), "`scaled:center`" = 1.30208396946565, "`scaled:scale`" = 0.609461200104939),
nr1h2 = structure(c(-0.49, 0.333, -0.525, -0.673, -0.442,
-0.029, 0.504, 0.169, -0.193, -0.641, -0.405, 0.01, 1.152,
0.002, -0.478, -0.514, -0.077, -0.61, -0.404, -0.544, -0.434,
0.448, 0.162, -0.463, -0.447, -0.81, -0.209, -0.194, 0.637,
-0.427, -0.366, -0.211, -1.252, -0.205, NA, -0.003, -0.277,
0.027, 0.172, -0.569, 0.343, 0.601, -0.468, -0.254, 0.001,
0.092, -0.416, -0.224, -0.518, -0.356, -0.401, NA, 1.952,
-0.607, -0.721, -0.481, -0.375, -0.499, -0.01, -0.822, -0.704,
0.01, 0.686, -0.429, 6.483, 0.214, -0.302, 0.019, -0.323,
NA, 0.566, 0.441, 0.273, 2.845, 0.409, 4.469, 0.115, -0.21,
4.747, 0.324, -0.453, -0.528, -0.057, -0.943, -0.463, -0.127,
NA, 0.056, -0.343, -0.05, -0.539, -0.785, NA, -0.327, NA,
-0.466, -0.413, -0.181, 0.43, 0.548, -0.098, 0.565, 0.487,
-0.571, 0.046, 0.251, 0.113, 0.382, 0.343, 0.919, 0.215,
0.433, NA, -0.757, -0.711, -0.656, -0.525, -0.482, -0.268,
-0.714, -0.101, 0.093, -0.493, -0.626, -0.845, -0.7, -0.48,
-0.404, -0.668, -0.028, 0.2, -0.506, -0.078, -0.84, -0.54,
3.735, -0.366, -0.326, 0.271, 0.199, -0.624, -0.504, 0.573,
-0.131, NA, -0.212, NA, 0.092, 0.175, NA, 0.61), dim = c(151L,
1L), "`scaled:center`" = 1.38648936170213, "`scaled:scale`" = 1.07206008371747),
rxra = structure(c(0.003, -0.137, -0.372, -0.339, 0.001,
-0.083, 0.371, -0.04, -0.286, -0.707, -0.405, 0.067, 0.205,
-0.515, -0.48, -0.25, -0.28, -0.408, -0.649, -0.735, -0.722,
0.391, -0.008, 0.584, -0.517, -0.531, -0.268, -0.405, NA,
0.39, -0.025, -0.02, NA, -0.119, NA, -0.586, -0.449, -0.152,
-0.343, -0.126, -0.528, 0.012, -0.769, 0.074, -0.213, -0.501,
-0.624, -0.602, -0.847, -0.655, -0.619, NA, 2.641, -0.764,
-0.931, -0.833, 0.084, -0.065, -0.135, -0.77, -0.665, 0.893,
0.544, -0.512, 7.66, 0.111, -0.297, 0.248, -0.305, NA, 0.041,
0.515, 0.562, 4.191, 0.701, 1.726, -0.371, -0.225, 2.191,
0.063, -0.714, 0.049, 0.049, -1.099, -0.875, -0.101, NA,
-0.152, -0.058, 0.084, -0.564, -0.49, NA, 0.138, NA, -0.592,
-0.782, 0.033, 0.165, 0.161, 0.576, 1.449, 2.191, -0.21,
-0.182, 0.547, 0.163, 0.057, 1.104, 0.842, 0.208, 0.941,
NA, -0.817, -0.543, -0.4, -0.344, -0.747, -0.811, -1.077,
-0.334, 0.312, -0.541, -0.726, -0.872, -0.365, -0.232, 0.04,
-0.334, -0.111, -0.304, -0.476, 0.172, -0.389, -0.233, 3.064,
-0.104, -0.063, -0.049, 0.686, -0.851, -0.243, -0.098, 0.067,
NA, -0.076, NA, 0.112, 0.429, NA, 0.241), dim = c(151L, 1L
), "`scaled:center`" = 1.39937410071942, "`scaled:scale`" = 0.869319134487005),
rxrb = structure(c(-0.489, -0.548, 0.591, 0.137, 0.814, 0.161,
-0.204, -0.242, -0.408, -0.65, -0.242, 0.987, 0.468, -0.6,
-1.373, -0.739, -0.917, -0.565, -0.633, -0.833, -0.81, 0.509,
0.217, 0.388, -0.067, -0.614, -0.055, -0.185, 0.416, 0.94,
-0.399, 0.106, -1.652, -0.902, NA, -0.224, -0.289, -0.568,
0.219, -0.61, -0.913, 0.299, -0.743, -0.183, -0.251, -0.699,
-1.232, -0.43, -0.297, -0.664, -0.273, NA, 3.264, 0.207,
-0.849, -0.253, -0.134, -0.762, 0.206, -0.693, -0.627, 0.747,
-0.139, -0.043, 4.043, 0.643, -0.319, -0.16, -0.185, NA,
0.083, 0.399, 0.147, 6.611, 0.054, -1.572, 0.721, -0.009,
-1.597, -0.062, 1.607, 0.272, -0.169, -1.139, 1.191, 0.293,
NA, 0.196, 0.383, -0.531, 0.02, 3.971, NA, 0.246, NA, -0.154,
-0.51, 0.083, 0.838, 0.19, 0.446, 0.083, 0.219, 1.676, -0.353,
0.421, -0.163, 0.091, 0.758, 0.625, 0.79, 0.084, NA, -0.956,
-0.775, -0.26, -0.446, -0.898, -0.439, -0.713, -0.93, -0.587,
-0.918, -0.161, -0.408, -0.216, -0.311, -0.168, 0.107, 0.15,
0.634, 0.853, 0.179, -0.47, -0.796, -1.533, 0.429, -0.155,
0.578, 0.741, 0.193, 0.067, -0.334, -0.016, NA, -0.006, NA,
0.053, 0.837, NA, -0.265), dim = c(151L, 1L), "`scaled:center`" = 1.39233333333333, "`scaled:scale`" = 0.828513485248186),
cyp27a1 = structure(c(-0.366, -0.342, -0.257, -0.731, 0.498,
-0.251, 1.016, -0.209, 0.086, -0.84, 0.399, -0.466, 0.022,
-0.54, -0.085, 0.018, -0.248, -0.82, -0.666, -0.821, -0.443,
0.187, -0.135, -0.433, 0.494, -0.57, -0.332, -0.088, NA,
-0.004, -0.705, 0.502, NA, -0.313, NA, -0.471, -0.423, -0.398,
-0.272, -0.82, 0.102, 0.183, -0.703, -0.155, -0.437, -0.427,
-0.739, -0.292, -0.586, -0.574, -0.284, NA, NA, -0.42, -1.099,
-0.879, -0.527, -0.609, -0.227, -0.827, -0.765, 6.111, 1.02,
-0.66, NA, 0.53, -0.424, 0.055, -0.184, NA, 0.633, 0.364,
0.418, NA, 0.229, 2.879, -0.264, -0.285, 3.73, 0.569, 0.053,
-0.368, -0.2, -1.217, -0.249, -0.318, NA, 0.37, 0.15, -0.23,
0.258, -0.623, NA, 0.183, NA, -0.321, -0.534, 0.537, -0.046,
0.809, 0.899, 1.415, 1.484, -0.158, -0.109, 0.863, -0.256,
0.281, 0.94, 1.062, 1.988, 0.064, NA, -0.455, -0.959, -0.437,
-0.657, -0.82, 0.022, -0.927, -0.821, 0.878, -1.189, -0.121,
-1.278, -0.811, -0.653, -0.54, -0.576, -0.266, 0.11, -0.433,
-0.075, -0.617, -0.682, 4.587, 0.149, -0.146, 0.384, 0.917,
-0.38, -0.17, 0.082, -0.301, NA, -0.176, NA, 0.135, -0.007,
NA, 2.875), dim = c(151L, 1L), "`scaled:center`" = 1.37367647058824, "`scaled:scale`" = 0.862860015103544),
abca1 = structure(c(-0.275, 0.339, -0.655, -0.414, -0.611,
0.548, -0.053, -0.25, 0.157, -0.472, -0.555, -0.329, 0.027,
-0.017, -0.442, 0.044, -0.191, -0.52, -0.685, -0.778, -0.503,
0.33, 0.045, -0.593, -0.279, -0.651, -0.192, 0.161, -0.159,
0.023, -0.304, 1.422, NA, -0.06, NA, -0.379, -0.488, -0.313,
-0.336, -0.056, -0.7, -0.563, -0.631, -0.275, -0.742, -0.394,
-0.655, -0.432, -0.616, -0.642, -0.141, NA, 0.3, -0.336,
-0.975, -0.667, -0.418, -0.325, 0.318, -0.852, -0.577, -0.766,
0.772, -0.559, 7.974, 0.385, -0.653, -0.261, -0.474, NA,
-0.007, 0.203, 0.908, 2.893, 1.629, 1.134, -0.125, 0.149,
4.345, 1.047, 0.223, -0.071, -0.296, -0.814, -0.64, 0.255,
NA, -0.277, -0.065, 0.479, -0.375, -0.422, NA, 0.292, NA,
-0.422, 0.515, 0.309, 0.11, 0.717, 0.468, 1.66, 1.869, -0.286,
0.075, 0.288, 0.092, -0.088, 0.473, -0.19, 0.548, 0.37, NA,
-0.824, -0.697, -0.561, -0.549, -0.529, -0.846, -0.768, -0.818,
0.101, -0.316, -0.727, -0.192, -0.498, -0.784, 0.324, -0.654,
0.626, -0.297, -0.268, -0.002, -0.21, -0.193, 2.531, 0.516,
-0.403, -0.064, 0.461, -0.481, 0.154, 0.215, -0.275, NA,
-0.527, NA, -0.642, 0.003, NA, 0.59), dim = c(151L, 1L),
"`scaled:center`" = 1.66513571428571,
"`scaled:scale`" = 1.46050537823946)), row.names = c("50109018",
"50109019", "50109025", "50109026", "50109027", "50118001", "50202099",
"50203004", "50203006", "50203008", "50203009", "50203010", "50203011",
"50203012", "50203013", "50203014", "50203015", "50203016", "50203017",
"50203019", "50203020", "50203022", "50203026", "50203027", "50203029",
"50203030", "50203031", "50203032", "50430001", "50508026", "50508027",
"50521001", "50521002", "50527001", "50601001", "50705001", "60901020",
"60901021", "60901023", "60901024", "60901026", "60901027", "60901028",
"60901029", "60901030", "60901031", "60901033", "60901034", "60901035",
"60901036", "60901037", "60901038", "70107034", "70111021", "70111022",
"70111023", "70111024", "70201047", "70204055", "70204056", "70211014",
"70710002", "70713001", "70713002", "70802011", "70802012", "70802013",
"70802015", "71801001", "71801002", "71801003", "110104017",
"110104019", "110104023", "110104024", "110104027", "110104028",
"110104029", "110104030", "110110005", "110113001", "110113003",
"110113005", "110113006", "110113007", "110113008", "110606056",
"110606061", "111201006", "111201007", "111201014", "111201017",
"111201019", "111201026", "111202007", "111202009", "111202015",
"120715011", "120715012", "120715019", "120715020", "120715021",
"120715022", "120715025", "120715026", "120715027", "120715029",
"120715030", "120715032", "120715033", "120715034", "120715035",
"120715037", "130102008", "130102009", "130102010", "130102012",
"130102013", "130102014", "130104004", "130105044", "130105045",
"130106034", "130106037", "130106038", "130108008", "130108009",
"140101088", "140101091", "140101096", "140101097", "140101099",
"140102087", "140102088", "140102089", "140102090", "140102092",
"140102095", "140103019", "140103020", "140103023", "140103024",
"140103026", "140103027", "140103028", "140103029", "140103030",
"140103033", "140103035", "140103036", "140103038"), class = "data.frame")
remotes::install_github("davidaarmstrong/missmda", force=TRUE)
library(missMDA)
res.mfa <- imputeMFA(df[, -1], group = 9, type = "s", ncp = 5)

Related

How to preserve column names after applying scale()?

With the database pasted as example you can see how the following pipe to scale() everything but the group of intervention (categorical variable), the column names change the name to: variable_name[,1], when I just want variable_name. It seems that this behaviour is using the view() function with the transformed df after scaling data. Whichever the reason is to specify [,1], I would prefer the notation to be removed
The code I've been using is:
library(dplyr)
#1st
df <- df %>%
dplyr::mutate(across(.cols = c("ppara":"lrp1"), .fns = scale)) # where c("ppara":"lrp1") is the range of quantitative continouos columns to apply scale
# 2nd
df %>% dplyr::mutate(across(.cols = c(3:52), .fns = scale, .names = "{.col}")))
#Entering the name of the df, seems to work and keep the names, but when I go to the view function
> df
id grup_int ppara ppard pparg nr1h3
1 50109018 LFD 2.88219852 0.21418973 1.29818239 0.40677902
2 50109019 LFD -0.09090266 -0.37583504 -0.17129420 0.24434046
3 50109025 LFD -0.51922065 -0.15165027 0.05554733 -0.42018092
4 50109026 NUTS NA -0.12085566 0.01702707 -0.01326412
5 50109027 LFD NA -0.14672313 -0.42809594 -0.82873851
6 50118001 OO NA 0.68103605 0.25670869 0.49210029
But when I do view(df) as in Image 1 look at the dataframe
The df:
df <- structure(list(id = c(50109018, 50109019, 50109025, 50109026,
50109027, 50118001, 50202099, 50203004, 50203006, 50203008, 50203009,
50203010, 50203011, 50203012, 50203013, 50203014, 50203015, 50203016,
50203017, 50203019, 50203020, 50203022, 50203026, 50203027, 50203029,
50203030, 50203031, 50203032, 50430001, 50508026, 50508027, 50521001,
50521002, 50527001, 50601001, 50705001, 60901020, 60901021, 60901023,
60901024, 60901026, 60901027, 60901028, 60901029, 60901030, 60901031,
60901033, 60901034, 60901035, 60901036, 60901037, 60901038, 70107034,
70111021, 70111022, 70111023, 70111024, 70201047, 70204055, 70204056,
70211014, 70710002, 70713001, 70713002, 70802011, 70802012, 70802013,
70802015, 71801001, 71801002, 71801003, 110104017, 110104019,
110104023, 110104024, 110104027, 110104028, 110104029, 110104030,
110110005, 110113001, 110113003, 110113005, 110113006, 110113007,
110113008, 110606056, 110606061, 111201006, 111201007, 111201014,
111201017, 111201019, 111201026, 111202007, 111202009, 111202015,
120715011, 120715012, 120715019, 120715020, 120715021, 120715022,
120715025, 120715026, 120715027, 120715029, 120715030, 120715032,
120715033, 120715034, 120715035, 120715037, 130102008, 130102009,
130102010, 130102012, 130102013, 130102014, 130104004, 130105044,
130105045, 130106034, 130106037, 130106038, 130108008, 130108009,
140101088, 140101091, 140101096, 140101097, 140101099, 140102087,
140102088, 140102089, 140102090, 140102092, 140102095, 140103019,
140103020, 140103023, 140103024, 140103026, 140103027, 140103028,
140103029, 140103030, 140103033, 140103035, 140103036, 140103038
), grup_int = structure(c(3L, 3L, 3L, 2L, 3L, 1L, 1L, 3L, 3L,
3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 2L, 1L, 1L, 1L,
3L, 3L, 2L, 3L, 1L, 1L, 3L, 3L, 1L, 3L, 2L, 3L, 2L, 1L, 2L, 3L,
3L, 2L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 2L, 1L, 2L, 1L,
1L, 3L, 2L, 1L, 2L, 2L, 1L, 3L, 3L, 3L, 3L, 1L, 2L, 1L, 2L, 1L,
3L, 2L, 2L, 1L, 2L, 2L, 1L, 3L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 3L, 2L,
2L, 3L, 2L, 2L, 1L, 1L, 2L, 3L, 2L, 2L, 1L, 1L, 1L, 1L, 3L, 2L,
3L, 3L, 1L, 3L, 3L, 2L, 2L, 3L, 1L, 1L, 2L, 2L, 2L, 3L), levels = c("OO",
"NUTS", "LFD"), label = "GENERAL: Grupo de intervención", class = "factor"),
ppara = c(3.761, 1.276, 0.918, NA, NA, NA, 1.437, NA, NA,
1.108, NA, 1.962, 1.816, 1.26, 0.498, 1.329, 1.447, NA, 1.848,
0.71, 0.909, NA, NA, 1.165, 1.079, 0.556, 1.197, NA, NA,
0.917, 0.37, 1.591, NA, 1.019, NA, 1.232, NA, NA, NA, 0.597,
NA, 1.136, 0.602, 0.724, 0.799, 0.827, 0.701, NA, NA, 1.973,
1.471, NA, NA, NA, NA, 0.845, 0.734, 0.987, NA, 0.389, 0.289,
1.86, 2.453, 0.895, 3.927, 1.893, 0.684, 0.782, 1.056, NA,
1.378, NA, 3.017, 4.415, NA, NA, 1.329, 1.086, 0.586, NA,
NA, NA, 1.093, 0.422, 1.278, 1.025, NA, 1.464, 0.872, 1.109,
1.342, NA, NA, 0.845, NA, 0.501, 0.765, NA, 2.709, 2.055,
2.078, NA, 1.664, 0.636, 1.358, 1.435, NA, 0.84, 1.348, 2.237,
2.627, 3.445, NA, NA, 0.736, 0.63, NA, NA, 0.599, 1.137,
2.161, NA, 0.731, 1.333, NA, NA, NA, 1.169, NA, 1.541, 1.046,
0.693, NA, 0.565, 1.172, NA, 0.801, 0.907, 3.903, 2.544,
NA, 1.658, 0.917, 1.667, NA, 2.54, NA, NA, NA, NA, NA), ppard = c(1.575,
1.096, 1.278, 1.303, 1.282, 1.954, 1.704, 1.518, 1.637, 0.951,
1.122, 1.025, 1.86, 0.904, 0.53, 1.37, 1.704, 0.751, 1.443,
0.78, 0.678, 1.856, 1.449, 1.08, 1.038, 0.727, 1.33, 0.96,
1.299, 0.851, 0.777, 1.465, NA, 1.121, NA, 1.304, 0.715,
1.549, 1.211, 0.764, 1.61, 1.373, 1.055, 1.054, 0.859, 0.987,
0.893, 1.187, 0.924, 0.989, 1.252, NA, 3.55, 1.074, 0.597,
0.811, 1.439, 1.006, 1.169, 0.699, 0.718, 4.058, 1.931, 1.045,
4.25, 1.931, 0.613, 1.159, 1.123, NA, 1.758, 1.517, 2.089,
5.654, 2.191, 3.724, 1.693, 0.964, 4.672, 1.276, 1.108, 1.363,
1.221, 0.344, 1.363, 1.397, NA, 1.813, 1.203, 1.093, 1.307,
0.623, NA, 1.244, NA, 0.822, 0.997, 1.595, 1.73, 2.223, 1.841,
1.58, 2.088, 1.032, 1.399, 1.788, 1.323, 1.157, 2.091, 1.868,
1.893, 1.98, NA, 0.429, 0.779, 0.714, 0.928, 0.971, 1.201,
0.539, 1.222, 1.186, 0.522, 1.037, 0.494, 0.671, 1.52, 0.946,
1.019, 1.54, 1.188, 1.133, 1.424, 0.894, 0.943, 4.713, 1.041,
1.476, 1.873, 1.515, 1.31, 1.118, 1.562, 1.464, NA, 1.069,
NA, 1.442, 1.798, NA, 2.134), pparg = c(2.201, 1.171, 1.33,
1.303, 0.991, 1.471, 1.795, 1.221, 2.188, 1.158, 1.532, 0.85,
2.393, 0.791, 0.773, 2.011, 1.445, 1.066, 0.392, 0.392, 1.361,
1.025, 1.471, 1.063, 0.89, 0.797, 0.981, 0.5, NA, 0.5, 0.682,
2.783, NA, 1.322, NA, 1.044, 0.893, 2.676, 0.714, 0.7, 1.662,
1.259, 1.135, 0.838, 1.075, 1.45, 1.311, 1.044, 1.223, 1.329,
0.932, NA, 3.831, 1.571, 0.879, 0.6, 0.82, 0.862, 1.545,
0.451, 0.663, 0.818, 1.539, 0.842, 3.584, 1.501, 0.453, 0.738,
1.091, NA, 1.12, 1.182, 2.528, 4.489, 2.161, NA, 1.006, 0.702,
3.117, 1.302, 0.857, 1.069, 0.96, 0.354, 0.902, 0.638, NA,
1.51, 1.011, 0.421, 1.445, 0.634, NA, 1.197, NA, 1.122, 1.168,
1.388, 0.789, 1.51, 1.334, 0.813, 1.718, 1.413, 1.242, 0.903,
1.134, 1.366, 1.451, 1.635, 3.1, 2.107, NA, 1.033, 0.719,
0.961, 1.203, 1.19, 1.094, 0.846, 1.724, 1.746, 0.169, 0.651,
0.4, 0.761, 1.662, 1.324, 0.645, 2.503, 0.555, 1.298, 1.852,
2.334, 1.608, 2.606, 1.2, 1.631, 1.262, 1.439, 0.689, 0.856,
0.93, 1.167, NA, 0.848, NA, 0.909, 2.218, NA, 2.414), nr1h3 = c(1.55,
1.451, 1.046, 1.294, 0.797, 1.602, 1.839, 1.406, 0.87, 1.436,
1.318, 1.028, 1.462, 1.919, 0.786, 1.597, 0.932, 0.936, 0.802,
1.184, 0.956, 1.712, 0.932, 1.023, 1.001, 1.002, 1.682, 0.735,
1.267, 1.052, 0.824, 1.334, 0.026, 1.345, NA, 1.468, 1.317,
1.581, 1.809, 0.845, 1.347, 1.769, 1.206, 1.584, 1.19, 1.016,
1.138, 1.066, 1.097, 1.137, 2.099, NA, NA, 0.999, 0.727,
0.689, 0.678, 0.825, 1.47, 0.612, 0.798, 1.093, 2.946, 0.999,
NA, 1.849, NA, 1.123, 1.617, NA, 1.446, 1.449, 1.716, NA,
3.037, 2.588, 1.344, 2.2, 4.011, NA, NA, NA, 1.176, 0.268,
1.26, 1.366, NA, 1.914, NA, NA, 1.041, 0.536, NA, 2.36, NA,
0.881, 1.357, 1.44, 1.713, 0.967, 1.728, 1.145, 1.854, 0.881,
1.77, 1.597, 1.181, 0.924, 1.38, 1.754, 2.612, 1.751, NA,
0.512, NA, 0.97, 1.604, 0.761, 0.738, 0.711, 1.132, 1.285,
0.451, 0.497, 0.538, 0.779, 0.941, 0.881, 0.763, 1.349, 1.693,
0.91, 1.128, 0.734, 0.833, 3.879, 0.943, 1.457, 1.879, 1.021,
1.016, 1.316, 1.012, 1.259, NA, 1.031, NA, 1.176, 1.588,
NA, 2.899), nr1h2 = c(0.861, 1.744, 0.824, 0.665, 0.913,
1.355, 1.927, 1.568, 1.18, 0.699, 0.952, 1.397, 2.622, 1.389,
0.874, 0.835, 1.304, 0.733, 0.953, 0.803, 0.921, 1.867, 1.56,
0.89, 0.907, 0.518, 1.162, 1.178, 2.069, 0.929, 0.994, 1.16,
0.044, 1.167, NA, 1.383, 1.089, 1.415, 1.571, 0.777, 1.754,
2.031, 0.885, 1.114, 1.388, 1.485, 0.941, 1.146, 0.831, 1.005,
0.957, NA, 3.479, 0.736, 0.613, 0.871, 0.984, 0.851, 1.376,
0.505, 0.632, 1.397, 2.122, 0.927, 8.337, 1.616, 1.063, 1.407,
1.04, NA, 1.993, 1.859, 1.679, 4.436, 1.825, 6.177, 1.51,
1.161, 6.476, 1.734, 0.901, 0.82, 1.325, 0.376, 0.89, 1.25,
NA, 1.447, 1.019, 1.333, 0.809, 0.545, NA, 1.036, NA, 0.887,
0.944, 1.192, 1.848, 1.974, 1.281, 1.992, 1.909, 0.774, 1.436,
1.656, 1.508, 1.796, 1.754, 2.372, 1.617, 1.851, NA, 0.575,
0.624, 0.683, 0.824, 0.87, 1.099, 0.621, 1.278, 1.486, 0.858,
0.715, 0.481, 0.636, 0.872, 0.953, 0.67, 1.356, 1.601, 0.844,
1.303, 0.486, 0.808, 5.391, 0.994, 1.037, 1.677, 1.6, 0.718,
0.846, 2.001, 1.246, NA, 1.159, NA, 1.485, 1.574, NA, 2.04
), rxra = c(1.402, 1.28, 1.076, 1.105, 1.4, 1.327, 1.722,
1.365, 1.151, 0.785, 1.047, 1.458, 1.578, 0.952, 0.982, 1.182,
1.156, 1.045, 0.835, 0.76, 0.772, 1.739, 1.392, 1.907, 0.95,
0.938, 1.166, 1.047, NA, 1.738, 1.378, 1.382, NA, 1.296,
NA, 0.89, 1.009, 1.267, 1.101, 1.29, 0.94, 1.41, 0.731, 1.464,
1.214, 0.964, 0.857, 0.876, 0.663, 0.83, 0.861, NA, 3.695,
0.735, 0.59, 0.675, 1.472, 1.343, 1.282, 0.73, 0.821, 2.176,
1.872, 0.954, 8.058, 1.496, 1.141, 1.615, 1.134, NA, 1.435,
1.847, 1.888, 5.043, 2.009, 2.9, 1.077, 1.204, 3.304, 1.454,
0.779, 1.442, 1.442, 0.444, 0.639, 1.312, NA, 1.267, 1.349,
1.472, 0.909, 0.973, NA, 1.519, NA, 0.885, 0.72, 1.428, 1.543,
1.539, 1.9, 2.659, 3.304, 1.217, 1.241, 1.875, 1.541, 1.449,
2.359, 2.131, 1.58, 2.217, NA, 0.689, 0.927, 1.052, 1.1,
0.75, 0.694, 0.463, 1.109, 1.671, 0.929, 0.768, 0.641, 1.082,
1.198, 1.434, 1.109, 1.303, 1.135, 0.986, 1.549, 1.061, 1.197,
4.063, 1.309, 1.345, 1.357, 1.996, 0.66, 1.188, 1.314, 1.458,
NA, 1.333, NA, 1.497, 1.772, NA, 1.609), rxrb = c(0.987,
0.938, 1.882, 1.506, 2.067, 1.526, 1.223, 1.192, 1.054, 0.854,
1.192, 2.21, 1.78, 0.895, 0.255, 0.78, 0.633, 0.924, 0.868,
0.702, 0.721, 1.814, 1.572, 1.714, 1.337, 0.884, 1.347, 1.239,
1.737, 2.171, 1.062, 1.48, 0.024, 0.645, NA, 1.207, 1.153,
0.922, 1.574, 0.887, 0.636, 1.64, 0.777, 1.241, 1.184, 0.813,
0.372, 1.036, 1.146, 0.842, 1.166, NA, 4.097, 1.564, 0.689,
1.183, 1.281, 0.761, 1.563, 0.818, 0.873, 2.011, 1.277, 1.357,
4.742, 1.925, 1.128, 1.26, 1.239, NA, 1.461, 1.723, 1.514,
6.87, 1.437, 0.09, 1.99, 1.385, 0.069, 1.341, 2.724, 1.618,
1.252, 0.449, 2.379, 1.635, NA, 1.555, 1.71, 0.952, 1.409,
4.682, NA, 1.596, NA, 1.265, 0.97, 1.461, 2.087, 1.55, 1.762,
1.461, 1.574, 2.781, 1.1, 1.741, 1.257, 1.468, 2.02, 1.91,
2.047, 1.462, NA, 0.6, 0.75, 1.177, 1.023, 0.648, 1.029,
0.802, 0.622, 0.906, 0.632, 1.259, 1.054, 1.213, 1.135, 1.253,
1.481, 1.517, 1.918, 2.099, 1.541, 1.003, 0.733, 0.122, 1.748,
1.264, 1.871, 2.006, 1.552, 1.448, 1.116, 1.379, NA, 1.387,
NA, 1.436, 2.086, NA, 1.173), cyp27a1 = c(1.058, 1.079, 1.152,
0.743, 1.803, 1.157, 2.25, 1.193, 1.448, 0.649, 1.718, 0.972,
1.393, 0.908, 1.3, 1.389, 1.16, 0.666, 0.799, 0.665, 0.991,
1.535, 1.257, 1, 1.8, 0.882, 1.087, 1.298, NA, 1.37, 0.765,
1.807, NA, 1.104, NA, 0.967, 1.009, 1.03, 1.139, 0.666, 1.462,
1.532, 0.767, 1.24, 0.997, 1.005, 0.736, 1.122, 0.868, 0.878,
1.129, NA, NA, 1.011, 0.425, 0.615, 0.919, 0.848, 1.178,
0.66, 0.714, 6.647, 2.254, 0.804, NA, 1.831, 1.008, 1.421,
1.215, NA, 1.92, 1.688, 1.734, NA, 1.571, 3.858, 1.146, 1.128,
4.592, 1.865, 1.419, 1.056, 1.201, 0.324, 1.159, 1.099, NA,
1.693, 1.503, 1.175, 1.596, 0.836, NA, 1.532, NA, 1.097,
0.913, 1.837, 1.334, 2.072, 2.149, 2.595, 2.654, 1.237, 1.28,
2.118, 1.153, 1.616, 2.185, 2.29, 3.089, 1.429, NA, 0.981,
0.546, 0.997, 0.807, 0.666, 1.393, 0.574, 0.665, 2.131, 0.348,
1.269, 0.271, 0.674, 0.81, 0.908, 0.877, 1.144, 1.469, 1,
1.309, 0.841, 0.785, 5.332, 1.502, 1.248, 1.705, 2.165, 1.046,
1.227, 1.444, 1.114, NA, 1.222, NA, 1.49, 1.368, NA, 3.854
)), row.names = c(NA, -151L), class = "data.frame")
The issue is that scale returns a matrix not a vector, i.e. when applied on a vector the result is a one-column matrix and that's what the [,1] is telling you.
This could be seen when calling str():
Note: I simplified the example data to the first four columns.
library(dplyr)
df <- df |> select(1:4)
df %>%
dplyr::mutate(across(.cols = c(ppara:ppard), .fns = scale)) |>
str()
#> 'data.frame': 151 obs. of 4 variables:
#> $ id : num 50109018 50109019 50109025 50109026 50109027 ...
#> $ grup_int: Factor w/ 3 levels "OO","NUTS","LFD": 3 3 3 2 3 1 1 3 3 3 ...
#> ..- attr(*, "label")= chr "GENERAL: Grupo de intervención"
#> $ ppara : num [1:151, 1] 2.8822 -0.0909 -0.5192 NA NA ...
#> ..- attr(*, "scaled:center")= num 1.35
#> ..- attr(*, "scaled:scale")= num 0.836
#> $ ppard : num [1:151, 1] 0.214 -0.376 -0.152 -0.121 -0.147 ...
#> ..- attr(*, "scaled:center")= num 1.4
#> ..- attr(*, "scaled:scale")= num 0.812
From the output we see that the scaled columns are numeric matrices of dimension 151 x 1.
To prevent that you have to explicitly convert to a vector by picking the column via .[,1] or using as.numeric:
df %>%
dplyr::mutate(across(.cols = c(ppara:ppard), .fns = ~ scale(.x)[,1])) |>
str()
#> 'data.frame': 151 obs. of 4 variables:
#> $ id : num 50109018 50109019 50109025 50109026 50109027 ...
#> $ grup_int: Factor w/ 3 levels "OO","NUTS","LFD": 3 3 3 2 3 1 1 3 3 3 ...
#> ..- attr(*, "label")= chr "GENERAL: Grupo de intervención"
#> $ ppara : num 2.8822 -0.0909 -0.5192 NA NA ...
#> $ ppard : num 0.214 -0.376 -0.152 -0.121 -0.147 ...
df %>%
dplyr::mutate(across(.cols = c(ppara:ppard), .fns = ~ as.numeric(scale(.x)))) |>
str()
#> 'data.frame': 151 obs. of 4 variables:
#> $ id : num 50109018 50109019 50109025 50109026 50109027 ...
#> $ grup_int: Factor w/ 3 levels "OO","NUTS","LFD": 3 3 3 2 3 1 1 3 3 3 ...
#> ..- attr(*, "label")= chr "GENERAL: Grupo de intervención"
#> $ ppara : num 2.8822 -0.0909 -0.5192 NA NA ...
#> $ ppard : num 0.214 -0.376 -0.152 -0.121 -0.147 ...
It is all said by #stefan, hence there is another approach:
We could rewrite the scale() function:
library(dplyr)
my_scale <- function(x){
require(caret)
var <- preProcess(data.frame(x),c("center", "scale"))
predict(var, data.frame(x))$x
}
df1 <- df %>%
dplyr::mutate(across(.cols = c("ppara":"cyp27a1"), .fns = my_scale))
View(df1)

How can I get all model estimates automatically in R?

I know I can calculate models' estimates by hand, but I'm sure there's a way to get all model estimates for all categorical levels automatically. Since I'm dealing with lmers, maybe this should be suitable. Note: I don't want to predict new data, I just wanna get all estimates automatically. (just edited the post to make it easier to understand)
an example:
> model <- lmer(Score ~ Proficiency_c * testType + (1|ID), data = myData, REML = F)
> summary(model)
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) 4.8376 0.2803 156.9206 17.259 < 2e-16 ***
Proficiency_c -1.3381 0.4405 156.9206 -3.038 0.00279 **
testTypeTestB 0.2088 0.3269 126.0000 0.639 0.52421
testTypeTestC 0.4638 0.3269 126.0000 1.418 0.15853
Proficiency_c:testTypeTestB 0.5008 0.5138 126.0000 0.975 0.33157
Proficiency_c:testTypeTestC 0.2357 0.5138 126.0000 0.459 0.64727
---
> contrasts(myData$testType)
TestB TestC
TestA 0 0
TestB 1 0
TestC 0 1
'by hand', I would:
## estimate for Test A:
y = b0 + b1x1 + b2x2 + b3x3 + b4(x1 * x2) + b5(x1 * x3)
y = b0 + b1 * 1 + 0 + 0 + 0
y = b0 + b1
y = 3.49
## estimate for Test B:
y = b0 + b1x1 + b2x2 + b3x3 + b4(x1 * x2) + b5(x1 * x3)
y = b0 + b1 * 1 + b2 * 1 + 0 + b4(1 * 1) + 0
y = b0 + b2 + (b1 + b4)x1
y = 4.20
## estimate for Test C:
y = b0 + b1x1 + b2x2 + b3x3 + b4(x1 * x2) + b5(x1 * x3)
y = b0 + b1 * 1 + b2 * 0 + b3 * 1 + 0 + b5 (1 * 1)
y = b0 + b3 + (b1 + b5)x1
y = 4.19
edited question
I usually deal with people who don't know how to come up with the model's estimates by themselves, so I usually have to calculate them all 'by hand'. I just wish there was a way to get all 'ys' estimates concerning each categorical level (as I did 'by hand' above) without doing that manually? Again, for now, I don't want to predict new values. Thanks in advance!
data:
dput(myData)
structure(list(ID = c("p1", "p1", "p1", "p2", "p2", "p2", "p3",
"p3", "p3", "p4", "p4", "p4", "p5", "p5", "p5", "p6", "p6", "p6",
"p7", "p7", "p7", "p8", "p8", "p8", "p9", "p9", "p9", "p10",
"p10", "p10", "p11", "p11", "p11", "p12", "p12", "p12", "p13",
"p13", "p13", "p14", "p14", "p14", "p15", "p15", "p15", "p16",
"p16", "p16", "p17", "p17", "p17", "p18", "p18", "p18", "p19",
"p19", "p19", "p20", "p20", "p20", "p21", "p21", "p21", "p22",
"p22", "p22", "p23", "p23", "p23", "p24", "p24", "p24", "p25",
"p25", "p25", "p26", "p26", "p26", "p27", "p27", "p27", "p28",
"p28", "p28", "p29", "p29", "p29", "p30", "p30", "p30", "p31",
"p31", "p31", "p32", "p32", "p32", "p33", "p33", "p33", "p34",
"p34", "p34", "p35", "p35", "p35", "p36", "p36", "p36", "p37",
"p37", "p37", "p38", "p38", "p38", "p39", "p39", "p39", "p40",
"p40", "p40", "p41", "p41", "p41", "p42", "p42", "p42", "p43",
"p43", "p43", "p44", "p44", "p44", "p45", "p45", "p45", "p46",
"p46", "p46", "p47", "p47", "p47", "p48", "p48", "p48", "p49",
"p49", "p49", "p50", "p50", "p50", "p51", "p51", "p51", "p52",
"p52", "p52", "p53", "p53", "p53", "p54", "p54", "p54", "p55",
"p55", "p55", "p56", "p56", "p56", "p57", "p57", "p57", "p58",
"p58", "p58", "p59", "p59", "p59", "p60", "p60", "p60", "p61",
"p61", "p61", "p62", "p62", "p62", "p63", "p63", "p63"), Score = c(5.33,
5.05, 5.15, 5.82, 2.29, 7.54, 4.46, 2.43, 1.53, 8.97, 7.69, 7.21,
6.76, 8.41, 3.77, 3.33, 11.57, 7.69, 2.15, 3.84, 3.29, 3.36,
6.66, 5.6, 4.23, 4.41, 3.07, 2.29, 4.9, 4.46, 3.22, 1.72, 2.08,
4.47, 2.4, 2.54, 2.73, 6.57, 7.31, 4.46, 9.27, 4.31, 4.54, 6.32,
8.97, 3.44, 4.68, 9.7, 2.15, 5.68, 5.26, 9.3, 5.68, 8.97, 4.65,
4.13, 4.57, 11.22, 11.39, 7.52, 3.94, 4.47, 3.52, 5, 8, 5.81,
2.96, 4.05, 2.22, 4.41, 5.64, 4.79, 2.43, 2.5, 4.16, 7.57, 9.21,
2.59, 3.12, 3.84, 7.76, 8.77, 5.08, 7.81, 4.49, 2.17, 7.4, 5.81,
4.9, 3.19, 3.2, 2.72, 3.67, 4.42, 3.57, 1.02, 4.42, 2.45, 5.88,
7.84, 4.93, 9.61, 3.75, 1.8, 3.47, 0.65, 1.39, 2.9, 6.36, 2.77,
2.67, 6.89, 6.74, 6.81, 1.94, 3.22, 3.12, 4.08, 5.31, 11.23,
4.1, 4.28, 3.89, 2.98, 3.52, 3.64, 3.63, 5.08, 4.9, 6.66, 7.56,
3.14, 5.26, 1.03, 4.58, 2.9, 2.5, 3.57, 4, 7.54, 3.5, 5.19, 2.56,
2.38, 1.4, 3.97, 2, 8.69, 5.33, 6.42, 3.62, 2.59, 4.63, 4.85,
6.87, 5.55, 3.14, 2.29, 4.68, 7.76, 3.53, 8.88, 3.44, 8, 5.15,
6.77, 12.28, 6.25, 4.91, 7.01, 7.4, 5.21, 3, 4.87, 7.5, 5.47,
8.97, 7.89, 7.54, 9.25, 7.24, 5.37, 6.41, 2.94, 5.47, 7.14, 5.4,
5.06, 6.32), Proficiency_c = c(0.44, 0.44, 0.44, 0.69, 0.69,
0.69, 1.24, 1.24, 1.24, -0.16, -0.16, -0.16, 1.14, 1.14, 1.14,
0.69, 0.69, 0.69, -0.26, -0.26, -0.26, 0.94, 0.94, 0.94, -0.26,
-0.26, -0.26, 1.04, 1.04, 1.04, 0.39, 0.39, 0.39, -0.06, -0.06,
-0.06, -0.41, -0.41, -0.41, 0.54, 0.54, 0.54, -0.51, -0.51, -0.51,
-0.81, -0.81, -0.81, 0.14, 0.14, 0.14, -0.31, -0.31, -0.31, 0.44,
0.44, 0.44, -0.11, -0.11, -0.11, -0.21, -0.21, -0.21, -0.51,
-0.51, -0.51, 0.24, 0.24, 0.24, 0.59, 0.59, 0.59, -0.21, -0.21,
-0.21, -0.66, -0.66, -0.66, -0.06, -0.06, -0.06, -1.01, -1.01,
-1.01, -0.26, -0.26, -0.26, 0.19, 0.19, 0.19, 0.84, 0.84, 0.84,
-0.11, -0.11, -0.11, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.79,
0.79, 0.79, 1.09, 1.09, 1.09, -0.76, -0.76, -0.76, 0.14, 0.14,
0.14, 0.64, 0.64, 0.64, 0.49, 0.49, 0.49, -0.71, -0.71, -0.71,
-0.31, -0.31, -0.31, -0.11, -0.11, -0.11, -0.61, -0.61, -0.61,
0.19, 0.19, 0.19, -0.36, -0.36, -0.36, -0.31, -0.31, -0.31, -1.01,
-1.01, -1.01, 1.19, 1.19, 1.19, -0.96, -0.96, -0.96, 0.99, 0.99,
0.99, 0.74, 0.74, 0.74, 0.24, 0.24, 0.24, -0.06, -0.06, -0.06,
-0.31, -0.31, -0.31, -0.66, -0.66, -0.66, -0.96, -0.96, -0.96,
0.89, 0.89, 0.89, -0.96, -0.96, -0.96, -1.01, -1.01, -1.01, -0.66,
-0.66, -0.66, -0.71, -0.71, -0.71, -0.36, -0.36, -0.36), testType = structure(c(1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("TestA",
"TestB", "TestC"), class = "factor")), row.names = c(NA, -189L
), class = c("tbl_df", "tbl", "data.frame"))
I'm not sure why you're calculating predictions at a reference proficiency of 1 (0 would be the default), but maybe you're looking for emmeans?
library(emmeans)
emmeans(model, ~testType, at = list(Proficiency_c=1))
The at = argument is the way to specify in emmeans that we want to calculate marginal means with the non-focal parameters (Proficiency_c in this case) set to a value other than the default [typically the mean of a numeric covariate]. See vignette("basics", package = "emmeans") (emmeans has many high-quality vignettes). It's specified as a list because we may have multiple non-focal parameters to set.
Results:
NOTE: Results may be misleading due to involvement in interactions
testType emmean SE df lower.CL upper.CL
TestA 3.50 0.529 162 2.45 4.54
TestB 4.21 0.529 162 3.16 5.25
TestC 4.20 0.529 162 3.15 5.24
Degrees-of-freedom method: kenward-roger
Confidence level used: 0.95
If you're looking for the estimated slope within each test type, use emtrends:
emtrends(model, ~testType, "Proficiency_c")
testType Proficiency_c.trend SE df lower.CL upper.CL
TestA -1.338 0.448 162 -2.22 -0.4541
TestB -0.837 0.448 162 -1.72 0.0467
TestC -1.102 0.448 162 -1.99 -0.2185
Degrees-of-freedom method: kenward-roger
Confidence level used: 0.95

What is Error: Aesthetics must be valid data columns Problematic aesthetic(s) in geom_rect and how to fix it?

I would like to make shade on certain date each year in time-series plot that is similar to this: Using geom_rect for time series shading in R
However, I got error:
Error: Aesthetics must be valid data columns. Problematic aesthetic(s): x = Date.
Did you mistype the name of a data column or forget to add after_stat()?
What is the meaning of that error? I'm sure the error come from geom_rect function, but I don't know how to fix it.
Here is the example of my data:
structure(list(Date = structure(c(4018, 4019, 4020, 4021, 4022,
4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033,
4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044,
4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055,
4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066,
4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077,
4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088,
4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099,
4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110,
4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121,
4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132,
4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143,
4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154,
4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165,
4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176,
4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187,
4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198,
4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209,
4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220,
4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231,
4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242,
4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253,
4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264,
4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275,
4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286,
4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297,
4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308,
4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319,
4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330,
4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341,
4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352,
4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363,
4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374,
4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385,
4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396,
4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407,
4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418,
4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429,
4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440,
4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451,
4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462,
4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473,
4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484,
4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495,
4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506,
4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517,
4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528,
4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539,
4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550,
4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561,
4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572,
4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583,
4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594,
4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605,
4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616,
4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627,
4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638,
4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649,
4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660,
4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671,
4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682,
4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693,
4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704,
4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715,
4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726,
4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737,
4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747), class = "Date"),
Cu = c(1.25, 1.25, 1.25, 1.25, 1.15, 1.15, 1.15, 1.15, 1.15,
1.15, 1.15, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75,
2.66, 2.66, 2.66, 2.66, 2.66, 2.66, 1.24, 1.24, 1.24, 1.24,
1.24, 1.24, 1.24, 3.71, 3.71, 3.71, 3.71, 3.71, 3.71, 3.71,
1.85, 1.85, 1.85, 1.85, 1.85, 1.85, 1.85, 2.13, 2.13, 2.13,
2.13, 2.13, 2.13, 2.13, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73,
0.73, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.4, 0.4,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, NA, NA, NA, NA, NA, NA, 1.12,
1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 1.71, 1.71, 1.71, 1.71,
1.71, 1.71, 1.71, 1.71, NA, NA, NA, NA, NA, NA, 1.28, 1.28,
1.28, 1.28, 1.28, 1.28, 1.28, 1.28, 0.9, 0.9, 0.9, 0.9, 0.9,
0.9, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8,
0.8, NA, NA, NA, NA, NA, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76,
0.76, 0.76, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.65, 0.65,
0.65, 0.65, 0.65, 0.65, 0.65, 0.76, 0.76, 0.76, 0.76, 0.76,
0.76, 0.76, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84,
NA, NA, NA, NA, NA, NA, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68,
0.68, 0.68, NA, NA, NA, NA, NA, NA, 1.16, 1.16, 1.16, 1.16,
1.16, 1.16, 1.16, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67,
0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.6, 0.6, 0.6,
0.6, 0.6, 0.6, 0.6, 1.72, 1.72, 1.72, 1.72, 1.72, 1.72, 1.72,
1.43, 1.43, 1.43, 1.43, 1.43, 1.43, 1.43, 1.43, 1.43, NA,
NA, NA, NA, NA, 1.31, 1.31, 1.31, 1.31, 1.31, 1.31, 1.31,
1.89, 1.89, 1.89, 1.89, 1.89, 1.89, 1.89, 0.7, 0.7, 0.7,
0.7, 0.7, 0.7, 0.7, 4.35, 4.35, 4.35, 4.35, 4.35, 4.35, 4.35,
1.48, 1.48, 1.48, 1.48, 1.48, 1.48, 1.48, 4.5, 4.5, 4.5,
4.5, 4.5, 4.5, 4.5, 1.95, 1.95, 1.95, 1.95, 1.95, 1.95, 1.95,
1.95, NA, NA, NA, NA, NA, NA, 1.41, 1.41, 1.41, 1.41, 1.41,
1.41, 1.41, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 3.44,
3.44, 3.44, 3.44, 3.44, 3.44, 3.44, 3.01, 3.01, 3.01, 3.01,
3.01, 3.01, 3.01, 3.28, 3.28, 3.28, 3.28, 3.28, 3.28, 3.28,
0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 3.08, 3.08, 3.08,
3.08, 3.08, 3.08, 3.08, 3.08, 3.38, 3.38, 3.38, 3.38, 3.38,
3.38, 1.86, 1.86, 1.86, 1.86, 1.86, 1.86, 1.86, 1.85, 1.85,
1.85, 1.85, 1.85, 1.85, 1.85, 2.25, 2.25, 2.25, 2.25, 2.25,
2.25, 2.25, 2.25, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 2.93, 2.93,
2.93, 2.93, 2.93, 2.93, 2.93, 1.09, 1.09, 1.09, 1.09, 1.09,
1.09, 1.09, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.57,
0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.49, 0.49, 0.49, 0.49,
0.49, 0.49, 0.49, 0.49, 0.49, 0.49, NA, NA, NA, NA, 0.8,
0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.51, 0.51, 0.51, 0.51, 0.51,
0.51, 0.51, 0.51, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 2.48, 2.48, 2.48, 2.48, 2.48, 2.48,
0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.72, 0.72, 0.72,
0.72, 0.72, 0.72, 0.72, 1.35, 1.35, 1.35, 1.35, 1.35, 1.35,
1.35, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 1.84, 1.84,
1.84, 1.84, 1.84, 1.84, 1.84, 2.56, 2.56, 2.56, 2.56, 2.56,
2.56, 2.56, 1.21, 1.21, 1.21, 1.21, 1.21, 1.21, 1.21, 1.73,
1.73, 1.73, 1.73, 1.73, 1.73, 1.73, 1.33, 1.33, 1.33, 1.33,
1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33,
1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33,
1.33, 1.33, 1.33, 1.33, 2.23, 2.23, 2.23, 2.23, 2.23, 2.23,
2.23, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 3.7, 3.7,
3.7, 3.7, 3.7), Pb = c(3.58, 3.58, 3.58, 3.58, 3, 3, 3, 3,
3, 3, 3, 3.89, 3.89, 3.89, 3.89, 3.89, 3.89, 3.89, 3.89,
5.4, 5.4, 5.4, 5.4, 5.4, 5.4, 4.24, 4.24, 4.24, 4.24, 4.24,
4.24, 4.24, 4.08, 4.08, 4.08, 4.08, 4.08, 4.08, 4.08, 3.42,
3.42, 3.42, 3.42, 3.42, 3.42, 3.42, 3.11, 3.11, 3.11, 3.11,
3.11, 3.11, 3.11, 1.68, 1.68, 1.68, 1.68, 1.68, 1.68, 1.68,
0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 1.19, 1.19, 1.19,
1.19, 1.19, 1.19, 1.19, 1.63, 1.63, 1.63, 1.63, 1.63, 1.63,
1.63, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.25, 2.25,
2.25, 2.25, 2.25, 2.25, 2.25, 1.93, 1.93, 1.93, 1.93, 1.93,
1.93, 1.93, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98,
1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.44, 1.44, 1.44, 1.44, 1.44,
1.44, 1.44, 1.44, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 1.02,
1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.31, 0.31, 0.31, 0.31,
0.31, 0.31, 0.31, 0.31, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.3,
0.3, 0.3, 0.3, 0.3, 0.3, 0.3, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76,
1.88, 1.88, 1.88, 1.88, 1.88, 1.88, 1.88, 1.88, NA, NA, NA,
NA, NA, NA, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 4.57,
4.57, 4.57, 4.57, 4.57, 4.57, 4.57, 3.93, 3.93, 3.93, 3.93,
3.93, 3.93, 3.93, 7.19, 7.19, 7.19, 7.19, 7.19, 7.19, 7.19,
7.55, 7.55, 7.55, 7.55, 7.55, 7.55, 7.55, 5.37, 5.37, 5.37,
5.37, 5.37, 5.37, 5.37, 4.64, 4.64, 4.64, 4.64, 4.64, 4.64,
4.64, 9.34, 9.34, 9.34, 9.34, 9.34, 9.34, 9.34, 9.34, 4.98,
4.98, 4.98, 4.98, 4.98, 4.98, 4.11, 4.11, 4.11, 4.11, 4.11,
4.11, 4.11, 5.7, 5.7, 5.7, 5.7, 5.7, 5.7, 5.7, 2.1, 2.1,
2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 3.31, 3.31, 3.31, 3.31, 3.31,
3.31, 3.11, 3.11, 3.11, 3.11, 3.11, 3.11, 3.11, 3.05, 3.05,
3.05, 3.05, 3.05, 3.05, 3.05, 2.24, 2.24, 2.24, 2.24, 2.24,
2.24, 2.24, 2.24, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
2.47, 2.47, 2.47, 2.47, 2.47, 2.47, 2.47, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1.27,
1.27, 1.27, 1.27, 1.27, 1.27, 1.27, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 2.72, 2.72, 2.72, 2.72, 2.72,
2.72, 2.72, 2.72, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61,
NA, NA, NA, NA, NA, NA, 2.26, 2.26, 2.26, 2.26, 2.26, 2.26,
2.26, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11,
1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11,
1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.11, 1.63,
1.63, 1.63, 1.63, 1.63, 1.63, 1.63, 1.27, 1.27, 1.27, 1.27,
1.27, 1.27, 1.27, 1.48, 1.48, 1.48, 1.48, 1.48), V = c(0.847,
0.847, 0.847, 0.847, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83,
0.83, 1.178, 1.178, 1.178, 1.178, 1.178, 1.178, 1.178, 1.178,
1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.351, 1.351, 1.351, 1.351,
1.351, 1.351, 1.351, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92,
0.92, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.755,
0.755, 0.755, 0.755, 0.755, 0.755, 0.755, 0.268, 0.268, 0.268,
0.268, 0.268, 0.268, 0.268, 0.116, 0.116, 0.116, 0.116, 0.116,
0.116, 0.116, 0.145, 0.145, 0.145, 0.145, 0.145, 0.145, 0.145,
0.138, 0.138, 0.138, 0.138, 0.138, 0.138, 0.138, 0.392, 0.392,
0.392, 0.392, 0.392, 0.392, 0.392, 0.438, 0.438, 0.438, 0.438,
0.438, 0.438, 0.438, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34,
0.34, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517,
0.269, 0.269, 0.269, 0.269, 0.269, 0.269, 0.673, 0.673, 0.673,
0.673, 0.673, 0.673, 0.673, 0.673, 0.161, 0.161, 0.161, 0.161,
0.161, 0.161, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535,
0.448, 0.448, 0.448, 0.448, 0.448, 0.448, 0.448, 0.091, 0.091,
0.091, 0.091, 0.091, 0.091, 0.091, 0.091, 0.121, 0.121, 0.121,
0.121, 0.121, 0.121, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035,
0.035, 0.045, 0.045, 0.045, 0.045, 0.045, 0.045, 0.045, 0.108,
0.108, 0.108, 0.108, 0.108, 0.108, 0.108, 0.278, 0.278, 0.278,
0.278, 0.278, 0.278, 0.278, 0.162, 0.162, 0.162, 0.162, 0.162,
0.162, 0.162, 0.162, 0.162, NA, NA, NA, NA, NA, 0.064, 0.064,
0.064, 0.064, 0.064, 0.064, 0.064, 0.064, NA, NA, NA, NA,
NA, NA, 0.062, 0.062, 0.062, 0.062, 0.062, 0.062, 0.062,
0.095, 0.095, 0.095, 0.095, 0.095, 0.095, 0.095, 0.031, 0.031,
0.031, 0.031, 0.031, 0.031, 0.031, 0.343, 0.343, 0.343, 0.343,
0.343, 0.343, 0.343, 0.767, 0.767, 0.767, 0.767, 0.767, 0.767,
0.767, 0.442, 0.442, 0.442, 0.442, 0.442, 0.442, 0.442, 1.085,
1.085, 1.085, 1.085, 1.085, 1.085, 1.085, 0.711, 0.711, 0.711,
0.711, 0.711, 0.711, 0.711, 1.036, 1.036, 1.036, 1.036, 1.036,
1.036, 1.036, 0.624, 0.624, 0.624, 0.624, 0.624, 0.624, 0.624,
0.624, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
0.132, 0.132, 0.132, 0.132, 0.132, 0.132, 0.132, 0.032, 0.032,
0.032, 0.032, 0.032, 0.032, 0.032, 0.032, 0.134, 0.134, 0.134,
0.134, 0.134, 0.134, 0.065, 0.065, 0.065, 0.065, 0.065, 0.065,
0.065, 0.201, 0.201, 0.201, 0.201, 0.201, 0.201, 0.201, 0.109,
0.109, 0.109, 0.109, 0.109, 0.109, 0.109, 1.189, 1.189, 1.189,
1.189, 1.189, 1.189, 1.189, 0.479, 0.479, 0.479, 0.479, 0.479,
0.479, 0.479, 0.565, 0.565, 0.565, 0.565, 0.565, 0.565, 0.565,
0.243, 0.243, 0.243, 0.243, 0.243, 0.243, 0.243, 0.142, 0.142,
0.142, 0.142, 0.142, 0.142, 0.142, 2.73, 2.73, 2.73, 2.73,
2.73, 2.73, 2.73, 1.848, 1.848, 1.848, 1.848, 1.848, 1.848,
1.848, 2.126, 2.126, 2.126, 2.126, 2.126, 2.126, 2.126, 2.59,
2.59, 2.59, 2.59, 2.59, 2.59, 2.59, 2.077, 2.077, 2.077,
2.077, 2.077, 2.077, 2.077, 0.912, 0.912, 0.912, 0.912, 0.912,
0.912, 0.912, 1.944, 1.944, 1.944, 1.944, 1.944, 1.944, 1.944,
1.944, 1.38, 1.38, 1.38, 1.38, 1.38, 1.38, 1.384, 1.384,
1.384, 1.384, 1.384, 1.384, 1.384, 0.807, 0.807, 0.807, 0.807,
0.807, 0.807, 0.807, 0.573, 0.573, 0.573, 0.573, 0.573, 0.573,
0.573, 0.573, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.598,
0.598, 0.598, 0.598, 0.598, 0.598, 0.598, 0.535, 0.535, 0.535,
0.535, 0.535, 0.535, 0.535, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.063, 0.063, 0.063, 0.063, 0.063, 0.063, 0.063, 0.063,
0.063, NA, NA, NA, NA, NA, NA, NA, 0.139, 0.139, 0.139, 0.139,
0.139, 0.139, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.081, 0.081,
0.081, 0.081, 0.081, 0.081, 0.081, 0.08, 0.08, 0.08, 0.08,
0.08, 0.08, 0.08, 0.051, 0.051, 0.051, 0.051, 0.051, 0.051,
0.051, 0.051, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.125,
0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.044, 0.044, 0.044,
0.044, 0.044, 0.044, 0.044, 0.057, 0.057, 0.057, 0.057, 0.057,
0.057, 0.057, 0.057, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 0.548, 0.548, 0.548, 0.548, 0.548, 0.548, 0.048,
0.048, 0.048, 0.048, 0.048, 0.048, 0.048, 0.019, 0.019, 0.019,
0.019, 0.019, 0.019, 0.019, 0.04, 0.04, 0.04, 0.04, 0.04,
0.04, 0.04, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.051,
0.051, 0.051, 0.051, 0.051, 0.051, 0.051, 0.105, 0.105, 0.105,
0.105, 0.105, 0.105, 0.105, 0.105, NA, NA, NA, NA, NA, NA,
0.261, 0.261, 0.261, 0.261, 0.261, 0.261, 0.261, 0.176, 0.176,
0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176,
0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176,
0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.176, 0.327,
0.327, 0.327, 0.327, 0.327, 0.327, 0.327, 0.254, 0.254, 0.254,
0.254, 0.254, 0.254, 0.254, 0.258, 0.258, 0.258, 0.258, 0.258
), Zn = c(6.19, 6.19, 6.19, 6.19, 8.7, 8.7, 8.7, 8.7, 8.7,
8.7, 8.7, 8.9, 8.9, 8.9, 8.9, 8.9, 8.9, 8.9, 8.9, 9.91, 9.91,
9.91, 9.91, 9.91, 9.91, 7.8, 7.8, 7.8, 7.8, 7.8, 7.8, 7.8,
11.89, 11.89, 11.89, 11.89, 11.89, 11.89, 11.89, 6.86, 6.86,
6.86, 6.86, 6.86, 6.86, 6.86, 7.6, 7.6, 7.6, 7.6, 7.6, 7.6,
7.6, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.18, 2.18, 2.18,
2.18, 2.18, 2.18, 2.18, 2.18, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 3.09, 3.09, 3.09, 3.09, 3.09, 3.09,
3.09, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 4.43, 2.28, 2.28,
2.28, 2.28, 2.28, 2.28, 2.28, 3.25, 3.25, 3.25, 3.25, 3.25,
3.25, 3.25, 3.25, 3.25, NA, NA, NA, NA, NA, 3.71, 3.71, 3.71,
3.71, 3.71, 3.71, 3.71, 3.71, 0.89, 0.89, 0.89, 0.89, 0.89,
0.89, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.11, 1.11,
1.11, 1.11, 1.11, 1.11, 1.11, 1.11, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 0.87, 0.87, 0.87, 0.87, 0.87,
0.87, 0.87, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1.53,
1.53, 1.53, 1.53, 1.53, 1.53, 1.53, 1.53, 0.8, 0.8, 0.8,
0.8, 0.8, 0.8, 1.65, 1.65, 1.65, 1.65, 1.65, 1.65, 1.65,
1.65, NA, NA, NA, NA, NA, NA, 0.88, 0.88, 0.88, 0.88, 0.88,
0.88, 0.88, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.49,
1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.8, 1.8, 1.8, 1.8, 1.8,
1.8, 1.8, 2.86, 2.86, 2.86, 2.86, 2.86, 2.86, 2.86, 0.97,
0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 2.2, 2.2, 2.2, 2.2, 2.2,
2.2, 2.2, 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 3.06,
3.06, 3.06, 3.06, 3.06, 3.06, 3.06, 1.86, 1.86, 1.86, 1.86,
1.86, 1.86, 1.86, 2.41, 2.41, 2.41, 2.41, 2.41, 2.41, 2.41,
1.47, 1.47, 1.47, 1.47, 1.47, 1.47, 1.47, 2.88, 2.88, 2.88,
2.88, 2.88, 2.88, 2.88, 2.35, 2.35, 2.35, 2.35, 2.35, 2.35,
2.35, 2.35, 1.41, 1.41, 1.41, 1.41, 1.41, 1.41, 2.02, 2.02,
2.02, 2.02, 2.02, 2.02, 2.02, 3.31, 3.31, 3.31, 3.31, 3.31,
3.31, 3.31, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 7, 7, 7, 7,
7, 7, 7, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 9.07, 9.07, 9.07,
9.07, 9.07, 9.07, 9.07, 3.28, 3.28, 3.28, 3.28, 3.28, 3.28,
3.28, 1.55, 1.55, 1.55, 1.55, 1.55, 1.55, 1.55, 9.58, 9.58,
9.58, 9.58, 9.58, 9.58, 9.58, 7.54, 7.54, 7.54, 7.54, 7.54,
7.54, 7.54, 13.86, 13.86, 13.86, 13.86, 13.86, 13.86, 13.86,
14.27, 14.27, 14.27, 14.27, 14.27, 14.27, 14.27, 9.59, 9.59,
9.59, 9.59, 9.59, 9.59, 9.59, 7.08, 7.08, 7.08, 7.08, 7.08,
7.08, 7.08, 18.08, 18.08, 18.08, 18.08, 18.08, 18.08, 18.08,
18.08, 10.95, 10.95, 10.95, 10.95, 10.95, 10.95, 7.36, 7.36,
7.36, 7.36, 7.36, 7.36, 7.36, 6.18, 6.18, 6.18, 6.18, 6.18,
6.18, 6.18, 5.25, 5.25, 5.25, 5.25, 5.25, 5.25, 5.25, 5.25,
5.4, 5.4, 5.4, 5.4, 5.4, 5.4, 6.39, 6.39, 6.39, 6.39, 6.39,
6.39, 6.39, 4.33, 4.33, 4.33, 4.33, 4.33, 4.33, 4.33, 2.92,
2.92, 2.92, 2.92, 2.92, 2.92, 2.92, 0.89, 0.89, 0.89, 0.89,
0.89, 0.89, 0.89, 0.89, 0.89, NA, NA, NA, NA, NA, NA, NA,
1.06, 1.06, 1.06, 1.06, 1.06, 1.06, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 5.21, 5.21, 5.21, 5.21, 5.21,
5.21, 5.21, NA, NA, NA, NA, NA, NA, 2.09, 2.09, 2.09, 2.09,
2.09, 2.09, 2.09, 2.03, 2.03, 2.03, 2.03, 2.03, 2.03, 2.03,
2.03, NA, NA, NA, NA, NA, NA, 2.63, 2.63, 2.63, 2.63, 2.63,
2.63, 2.63, 4.31, 4.31, 4.31, 4.31, 4.31, 4.31, 4.31, 1.77,
1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 4.15, 4.15, 4.15, 4.15,
4.15, 4.15, 4.15, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22,
2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22,
2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22, 2.22,
2.22, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 2.7, 2.7,
2.7, 2.7, 2.7, 2.7, 2.7, 7.47, 7.47, 7.47, 7.47, 7.47)), row.names = 167:896, class = "data.frame")
Here is my code:
library (ggplot2)
library (dplyr)
library (tidyr)
shade <-
df1 %>%
transmute(year = year(Date)) %>%
unique() %>%
mutate(
from = as.Date(paste0(year, "-02-21")),
to = as.Date(paste0(year, "-04-30"))
)
ggplot(df1, aes(x=Date)) +
geom_rect(data = shade, aes(xmin = from, xmax = to, ymin = -Inf, ymax = Inf), color='grey', alpha=0.2) +
geom_line( aes(y=V, color='V')) + geom_line( aes(y= Cu / coeff, color = 'Cu')) +
geom_line( aes(y= Pb / coeff, color = 'Pb')) + geom_line( aes(y= / coeff, color = 'Zn')) +
scale_y_continuous(name = "V", sec.axis = sec_axis(~.*coeff, name = "Cu, Pb, Zn"))+
theme_bw()+ theme(legend.position = c(0.2, 0.9),legend.direction="horizontal")+labs(color = NULL, fill = NULL)
If you have any idea what happened and how to fix it, please let me know. Thank you.
Best regards.
Try to use only ggplot(df1) and not putting aes() inside ggplot(), each geom_line read df1 and geom_rect read shade.
ggplot(df1) +
geom_line( aes(x=Date, y=V, color='V')) +
geom_line( aes(x=Date, y= Cu, color = 'Cu')) +
geom_line( aes(x=Date, y= Pb, color = 'Pb')) +
geom_line( aes(x=Date, y= Zn, color = 'Zn')) +
geom_rect(data = shade, aes(xmin = from, xmax = to, ymin = -Inf, ymax = Inf), color='grey', alpha=0.2) +
scale_y_continuous(name = "V", sec.axis = sec_axis(~., name = "Cu, Pb, Zn"))+
theme_bw()+ theme(legend.position = c(0.2, 0.9),legend.direction="horizontal")+labs(color = NULL, fill = NULL)
# or u can use
ggplot() +
geom_line(data = df1, aes(x=Date, y=V, color='V')) +
geom_line(data = df1, aes(x=Date, y= Cu, color = 'Cu')) +
geom_line(data = df1, aes(x=Date, y= Pb, color = 'Pb')) +
geom_line(data = df1, aes(x=Date, y= Zn, color = 'Zn')) +
geom_rect(data = shade, aes(xmin = from, xmax = to, ymin = -Inf, ymax = Inf), color='grey', alpha=0.2) +
scale_y_continuous(name = "V", sec.axis = sec_axis(~., name = "Cu, Pb, Zn"))+
theme_bw()+ theme(legend.position = c(0.2, 0.9),legend.direction="horizontal")+labs(color = NULL, fill = NULL)
In my opinion the error you are getting is beacuse geom_rect() is trying to find columns (Date in this case) in previously declared aes().
I couldn't test my theory since there are some problems with your code (e.g. no coeff in df1 object).

Converting row names to values to a column with keeping the corresponding values [duplicate]

This question already has answers here:
Reshaping data.frame from wide to long format
(8 answers)
Closed 4 years ago.
I want to convert row names to values to a column with keeping the corresponding values. My data has country names in the first column and years for the column names for the remaining of the columns with values in the cells. I want to convert this to a proper table formate. See below for an example.
Example of the table formate:
Country | 2002 | 2003| ...
Canada | 2.2 | 2.4 | ...
US | 4.2 | 7.4 | ...
.
.
.
I would like to have the table in the format of:
Country | Year | Value
Canada | 2002 | 2.2
Canada | 2.2 | 2.4
...
I believe the tidy data package should work by the country is being dropped. See my example below.
Data:
ElectricCarStock_BEVandPHEV<- structure(list(Country = structure(c(1L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 17L, 18L, 19L, 20L,
22L, 23L, 16L, 21L), .Label = c("Australia", "Brazil", "Canada",
"Chile", "China", "Finland", "France", "Germany", "India", "Japan",
"Korea", "Mexico", "Netherlands", "New Zealand", "Norway", "Others",
"Portugal", "South Africa", "Sweden", "Thailand", "Total", "United Kingdom",
"United States"), class = "factor"), `2005` = c(NA, NA, NA, NA,
NA, NA, 0.01, 0.02, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
0.22, 1.12, 0.53, 1.89), `2006` = c(NA, NA, NA, NA, NA, NA, 0.01,
0.02, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.01, 0.55, 1.12,
0.53, 2.23), `2007` = c(NA, NA, NA, NA, NA, NA, 0.01, 0.02, NA,
NA, NA, NA, NA, NA, 0.01, NA, NA, NA, 0.01, 1, 1.12, 0.53, 2.69
), `2008` = c(NA, NA, NA, NA, NA, NA, 0.01, 0.09, 0.37, NA, NA,
NA, 0.01, NA, 0.26, NA, NA, NA, 0.01, 1.22, 2.58, 0.61, 5.15),
`2009` = c(NA, NA, NA, NA, 0.48, NA, 0.12, 0.1, 0.53, 1.08,
NA, NA, 0.15, NA, 0.4, NA, NA, NA, 0.01, 1.4, 2.58, 0.64,
7.48), `2010` = c(NA, NA, NA, NA, 1.91, NA, 0.3, 0.25, 0.88,
3.52, 0.06, NA, 0.27, 0.01, 0.79, NA, NA, NA, 0.01, 1.68,
3.77, 0.81, 14.26), `2011` = c(50, NA, 0.52, 0.01, 6.98,
0.06, 3.03, 1.89, 1.33, 16.14, 0.34, NA, 1.14, 0.03, 2.63,
NA, NA, 0.18, 0.01, 2.89, 21.5, 2.6, 61.33), `2012` = c(300,
NA, 2.54, 0.01, 16.88, 0.24, 9.29, 5.26, 2.76, 40.58, 0.85,
0.09, 6.26, 0.06, 7.15, NA, NA, 1.11, 0.02, 5.59, 74.74,
5.31, 179.03), `2013` = c(600, NA, 5.66, 0.02, 32.22, 0.47,
18.91, 12.19, 2.95, 69.46, 1.45, 0.1, 28.67, 0.09, 15.67,
NA, 0.03, 2.66, 0.03, 9.34, 171.44, 9.35, 381.3), `2014` = c(1920,
0.06, 10.73, 0.03, 105.39, 0.93, 31.54, 24.93, 3.35, 101.74,
2.76, 0.15, 43.76, 0.41, 35.44, NA, 0.05, 7.32, 0.1, 24.08,
290.22, 18.73, 703.65), `2015` = c(3690, 0.15, 17.69, 0.07,
312.77, 1.59, 54.49, 48.12, 4.35, 126.4, 5.95, 0.25, 87.53,
0.91, 69.17, NA, 0.29, 15.91, 0.37, 48.51, 404.09, 37.17,
1239.45), `2016` = c(5060, 0.32, 29.27, 0.1, 648.77, 3.29,
84, 72.73, 4.8, 151.25, 11.21, 0.66, 112.01, 2.41, 114.05,
NA, 0.67, 29.33, 0.38, 86.42, 563.71, 61.63, 1982.04), `2017` = c(7340,
0.68, 45.95, 0.25, 1227.77, 6.34, 118.77, 109.56, 6.8, 205.35,
25.92, 0.92, 119.33, 5.88, 176.31, 1.78, 0.86, 49.6, 0.4,
133.67, 762.06, 103.44, 3109.05)), .Names = c("Country",
"2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012",
"2013", "2014", "2015", "2016", "2017"), class = "data.frame", row.names = c(NA,
-23L))
Code:
library(tidyr)
library(dplyr)
temp<-gather(ElectricCarStock_BEVandPHEV, Country, 2:13)
head(temp)
This should do it:
library(reshape2)
library(tidyverse)
ElectricCarStock_BEVandPHEV %>%
melt(id.vars="Country")

How to determine a value in a column immediately before a value in another column in R?

Plot
Following is a plot of speeds of two vehicles over time. The subject vehicle (blue) is following the lead vehicle (red) in the same lane. So, the speed profile of subject vehicle is very similar to lead vehicle's.
I have manually labelled the points where a vehicle changes its speed by acceleration/deceleration. Now, I want to determine these points from the data. Following are the sample data:
Data
> dput(veh)
structure(list(Time = c(287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331), fit_p = c(NA,
NA, NA, 8.86, 8.5, 8.15, 7.79, 7.44, 7.08, 6.73, 6.38, 6.1, 6.48,
6.86, 7.24, 7.63, 8.01, 8.38, 8.58, 8.68, 8.7, 8.53, 8.33, 8.12,
7.92, 7.71, 7.74, 8.1, 8.45, 8.8, 9.15, 9.29, 9.22, 9.16, 9.09,
9.13, 9.25, 9.37, 9.49, 9.51, 9.34, 9.17, NA, NA, NA), psi_p2 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 298, NA, NA, NA, NA,
NA, 304, 305, NA, 307, NA, NA, NA, NA, NA, 313, NA, NA, NA, 317,
NA, NA, NA, 321, NA, NA, NA, NA, 326, NA, NA, NA, NA, NA), slo_p = c(-0.35,
-0.35, -0.35, -0.35, -0.35, -0.35, -0.35, -0.35, -0.35, -0.35,
-0.35, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.2, 0.02, 0.02, -0.2,
-0.2, -0.2, -0.2, -0.2, -0.2, 0.35, 0.35, 0.35, 0.35, -0.06,
-0.06, -0.06, -0.06, 0.12, 0.12, 0.12, 0.12, 0.12, -0.17, -0.17,
-0.17, -0.17, -0.17, -0.17), fit_v = c(NA, NA, NA, 9.16, 8.57,
7.99, 7.4, 7.23, 7.13, 7.04, 6.94, 6.85, 6.75, 6.66, 7.07, 7.57,
8.06, 8.56, 9.04, 9.15, 9.26, 9.37, 9.15, 8.92, 8.68, 8.45, 8.22,
7.99, 8.03, 8.24, 8.55, 8.87, 9.02, 8.96, 8.89, 8.82, 8.75, 8.99,
9.28, 9.47, 9.42, 9.37, NA, NA, NA), psi_v2 = c(NA, NA, NA, NA,
NA, NA, 293, NA, NA, NA, NA, NA, NA, 300, NA, NA, NA, NA, 305,
NA, NA, 308, NA, NA, NA, NA, NA, 314, 315, 316, NA, NA, 319,
NA, NA, NA, 323, NA, NA, 326, NA, NA, NA, NA, NA), slo_v = c(-0.59,
-0.59, -0.59, -0.59, -0.59, -0.59, -0.1, -0.1, -0.1, -0.1, -0.1,
-0.1, -0.1, 0.5, 0.5, 0.5, 0.5, 0.5, 0.11, 0.11, 0.11, -0.23,
-0.23, -0.23, -0.23, -0.23, -0.23, 0.04, 0.16, 0.32, 0.32, 0.32,
-0.07, -0.07, -0.07, -0.07, 0.29, 0.29, 0.29, -0.05, -0.05, -0.05,
-0.05, -0.05, -0.05)), .Names = c("Time", "fit_p", "psi_p2",
"slo_p", "fit_v", "psi_v2", "slo_v"), row.names = c(NA, -45L), class = "data.frame")
In the column psi_v2, I have the time where subject vehicle changed the speed. These are all the S points. The points where the lead vehicle changed the speed are in the column psi_p2. But, I only want to determine the location of those points in psi_p2 which happened immediately before point S. These points are all the L points on the plot. For instance, S1 happened at psi_v2=300, therefore, L1 is 298 in psi_p2.
Question
I guess that I need to use which() to determine the relevant points from psi_p2. But I don't know how to code the part where only the "immediately before" point is picked.
Once the points are identified, I want to check if the subject vehicle accelerated in response to lead vehicle's acceleration. The acceleration of subject vehicle is in slo_v and that of lead vehicle is inslo_p. Example: For S1, slo_v = 0.5, and for L1, slo_p = 0.38. Since subject vehicle accelerated due to acceleration of lead vehicle, we call it "opening" (or "closing" in opposite case).
So, my desired output is:
structure(list(Time = 287:331, fit_p = c(NA, NA, NA, 8.86, 8.5,
8.15, 7.79, 7.44, 7.08, 6.73, 6.38, 6.1, 6.48, 6.86, 7.24, 7.63,
8.01, 8.38, 8.58, 8.68, 8.7, 8.53, 8.33, 8.12, 7.92, 7.71, 7.74,
8.1, 8.45, 8.8, 9.15, 9.29, 9.22, 9.16, 9.09, 9.13, 9.25, 9.37,
9.49, 9.51, 9.34, 9.17, NA, NA, NA), psi_p2 = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 298L, NA, NA, NA, NA, NA, 304L, 305L,
NA, 307L, NA, NA, NA, NA, NA, 313L, NA, NA, NA, 317L, NA, NA,
NA, 321L, NA, NA, NA, NA, 326L, NA, NA, NA, NA, NA), slo_p = c(-0.35,
-0.35, -0.35, -0.35, -0.35, -0.35, -0.35, -0.35, -0.35, -0.35,
-0.35, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.2, 0.02, 0.02, -0.2,
-0.2, -0.2, -0.2, -0.2, -0.2, 0.35, 0.35, 0.35, 0.35, -0.06,
-0.06, -0.06, -0.06, 0.12, 0.12, 0.12, 0.12, 0.12, -0.17, -0.17,
-0.17, -0.17, -0.17, -0.17), fit_v = c(NA, NA, NA, 9.16, 8.57,
7.99, 7.4, 7.23, 7.13, 7.04, 6.94, 6.85, 6.75, 6.66, 7.07, 7.57,
8.06, 8.56, 9.04, 9.15, 9.26, 9.37, 9.15, 8.92, 8.68, 8.45, 8.22,
7.99, 8.03, 8.24, 8.55, 8.87, 9.02, 8.96, 8.89, 8.82, 8.75, 8.99,
9.28, 9.47, 9.42, 9.37, NA, NA, NA), psi_v2 = c(NA, NA, NA, NA,
NA, NA, 293L, NA, NA, NA, NA, NA, NA, 300L, NA, NA, NA, NA, 305L,
NA, NA, 308L, NA, NA, NA, NA, NA, 314L, 315L, 316L, NA, NA, 319L,
NA, NA, NA, 323L, NA, NA, 326L, NA, NA, NA, NA, NA), slo_v = c(-0.59,
-0.59, -0.59, -0.59, -0.59, -0.59, -0.1, -0.1, -0.1, -0.1, -0.1,
-0.1, -0.1, 0.5, 0.5, 0.5, 0.5, 0.5, 0.11, 0.11, 0.11, -0.23,
-0.23, -0.23, -0.23, -0.23, -0.23, 0.04, 0.16, 0.32, 0.32, 0.32,
-0.07, -0.07, -0.07, -0.07, 0.29, 0.29, 0.29, -0.05, -0.05, -0.05,
-0.05, -0.05, -0.05), label = structure(c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 9L, 1L, 1L, 1L, 3L, 10L, 1L,
4L, 11L, 1L, 1L, 1L, 1L, 5L, 1L, 1L, 12L, 6L, 1L, 13L, 1L, 7L,
1L, 14L, 1L, 1L, 8L, 1L, 1L, 1L, 1L, 1L), .Label = c("", "L1",
"L2", "L3", "L4", "L5", "L6", "L7&S7", "S1", "S2", "S3", "S4",
"S5", "S6"), class = "factor"), condition = structure(c(1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L,
3L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 2L, 1L,
1L, 1L, 3L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L), .Label = c("", "closing",
"opening"), class = "factor")), .Names = c("Time", "fit_p", "psi_p2",
"slo_p", "fit_v", "psi_v2", "slo_v", "label", "condition"), class = "data.frame", row.names = c(NA,
-45L))
Kindly guide me what function should I use to identify these points? I prefer using dplyr because I have multiple pairs like this example. An operation for one data frame can then be used on all others using group_by().

Resources