У меня есть набор данных, который выглядит примерно так, за исключением очень длинного:
treatment biomass greenness height NDVI
1 Apigenin 0.001 221694.0 0.15028 92.647 0.21001
2 Apigenin 0.001 72639.6 0.22868 90.435 0.22735
3 Apigenin 0.001 232935.0 0.19238 84.684 0.29084
4 Apigenin 0.001 199267.0 0.23515 95.618 0.28140
5 Apigenin 0.001 213989.0 0.21403 86.819 0.31824
6 Apigenin 0.001 143787.0 0.19836 99.779 0.25108
Я хотел бы преобразовать его в формат, чтобы получить 4 разных кадра данных - 1 кадр данных / независимый vairbale (биомасса данных, greennessdata, heightdata, NDVIdata), каждая обработка которых представлена в виде столбца, а значения измерения - как измерения.
Это то, что я сделал - я в основном разбил набор данных сначала на отдельные фреймы данных, а затем попытался распространить оба. Это не сработало - я не могу заставить его рассматривать все те же повторяющиеся обработки как 1.
Я хочу, чтобы все значения биомассы для всех апигенинов 0,001 (6 различных значений биомассы) были помещены в «Апигенин 0,001» столбец.
biomassdata <- data[c(1,2)]
head(biomassdata)
treatment biomass
1 Apigenin 0.001 221694.0
2 Apigenin 0.001 72639.6
3 Apigenin 0.001 232935.0
4 Apigenin 0.001 199267.0
5 Apigenin 0.001 213989.0
6 Apigenin 0.001 143787.0
data_wide <- spread(data, treatment, biomass)
**my error**
Error: Each row of output must be identified by a unique combination of keys.
Keys are shared for 24 rows:
* 61, 63, 64, 66, 67, 68, 69, 71, 72, 73, 74, 75, 77, 78, 79, 80, 82, 83, 84, 85, 86, 88, 89, 90
Пожалуйста, помогите! Заранее спасибо :)
Продолжение 1: Я предложил nurandi и добавил столбец идентификаторов + запустил то, что они написали, и я получил подобный фрагмент данных, подобный этому. Даже после использования na.omit я не могу избавиться от АН. Как я могу свернуть это так, чтобы все данные в виде 6 строк по x столбцам df?
Продолжение 2: Вот мои данные с dput (data)
structure(list(treatment = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L,
4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L,
7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L,
10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 11L,
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L,
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L,
12L, 12L, 12L, 13L, 13L, 13L, 13L, 13L, 13L, 14L, 14L, 14L, 14L,
14L, 14L, 15L, 15L, 15L, 15L, 15L, 15L, 16L, 16L, 16L, 16L, 16L,
16L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L,
18L, 18L, 18L, 18L, 18L, 18L, 19L, 19L, 19L, 19L, 19L, 19L, 20L,
20L, 20L, 20L, 20L, 20L, 21L, 21L, 21L, 21L, 21L, 21L, 22L, 22L,
22L, 22L, 22L, 22L), .Label = c("Apigenin 0.001", "Apigenin 0.01",
"Apigenin 0.1", "Apigenin 1", "Apigenin 10", "Arbutin 0.001",
"Arbutin 0.01", "Arbutin 0.1", "Arbutin 1", "Arbutin 10", "blank",
"Catechin 0.001", "Catechin 0.01", "Catechin 0.1", "Catechin 1",
"Catechin 10", "Control 0", "Epicatechin 0.001", "Epicatechin 0.01",
"Epicatechin 0.1", "Epicatechin 1", "Epicatechin 10"), class = "factor"),
ID = 1:162, biomass = c(221694, 72639.6, 232935, 199267,
213989, 143787, 108455, 147839, 252471, 142101, 119912, 227052,
178779, 43711.7, 276519, 176843, 159333, 154074, 59773.9,
59487.9, 88314.4, 93913, 216126, 179190, 204302, 290455,
121592, 132088, 135095, 184920, 142149, 163629, 148910, 93512.5,
27448.5, 89122.8, 121462, 122664, 113559, 175693, 156794,
152504, 253416, 151476, 296591, 204390, 350047, 280300, 245592,
131444, 209276, 156653, 187770, 135809, 115277, 158624, 171040,
146898, 204402, 69558.6, 0, 13606.8, 0, 0, 95.986, 0, 0,
0, 0, 10117.6, 0, 0, 0, 0, 0, 390.35, 0, 0, 0, 0, 4551.37,
0, 0, 0, 0, 0, 62.509, 0, 0, 0, 191794, 144348, 156837, 133628,
100955, 141259, 194590, 88728.2, 254885, 217073, 149569,
140578, 239332, 123793, 117182, 128033, 288146, 124335, 50298.3,
58042, 271309, 76837.5, 64283.4, 39683.5, 143766, 246305,
222373, 104302, 135446, 211847, 170214, 167940, 190325, 266613,
154118, 161985, 212837, 107061, 251746, 174159, 221187, 92178,
259297, 127482, 284857, 108563, 277292, 122333, 327831, 198009,
225756, 204637, 223356, 196766, 117736, 160845, 263906, 132815,
443663, 157005, 190361, 176090, 215908, 203894, 171227, 201593,
146864, 130770, 99702.7, 228162, 202906, 233314), greenness = c(0.15028,
0.22868, 0.19238, 0.23515, 0.21403, 0.19836, 0.2237, 0.17761,
0.23665, 0.24452, 0.2126, 0.20856, 0.1506, 0.23842, 0.16838,
0.20856, 0.19131, 0.21226, 0.21069, 0.13162, 0.22843, 0.18827,
0.2189, 0.20778, 0.17662, 0.23778, 0.14829, 0.19675, 0.19279,
0.20615, 0.16436, 0.19543, 0.19704, 0.20855, 0.13348, 0.23248,
0.19071, 0.2136, 0.20921, 0.17778, 0.19822, 0.21325, 0.16728,
0.25961, 0.17343, 0.20308, 0.17734, 0.242, 0.22057, 0.16954,
0.19165, 0.1845, 0.17033, 0.20429, 0.16552, 0.25312, 0.19969,
0.21126, 0.21567, 0.20092, 0, 0.15785, 0, 0, 0.06892, 0,
0, 0, 0, 0.18583, 0, 0, 0, 0, 0, 0.04699, 0, 0, 0, 0, 0.18747,
0, 0, 0, 0, 0, 0.03289, 0, 0, 0, 0.1896, 0.27279, 0.16916,
0.2194, 0.19494, 0.20371, 0.24688, 0.2282, 0.22256, 0.21988,
0.22612, 0.20273, 0.21205, 0.2467, 0.17265, 0.25261, 0.20605,
0.24522, 0.23485, 0.20824, 0.21689, 0.20503, 0.21646, 0.19256,
0.18349, 0.25014, 0.21185, 0.21199, 0.19043, 0.22531, 0.19896,
0.23486, 0.20735, 0.20261, 0.17726, 0.22984, 0.23568, 0.21472,
0.20697, 0.2529, 0.23796, 0.17527, 0.1892, 0.21681, 0.17071,
0.2288, 0.2082, 0.24332, 0.21457, 0.19615, 0.22709, 0.2089,
0.21144, 0.25504, 0.17523, 0.21035, 0.19321, 0.24167, 0.21131,
0.2185, 0.20862, 0.19959, 0.20922, 0.25067, 0.23803, 0.21703,
0.20565, 0.23583, 0.21409, 0.22438, 0.19036, 0.23628), height = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), NDVI = c(65.077,
71.607, 62.782, 74.981, 67.432, 80.255, 67.415, 59.571, 67.783,
70.877, 64.327, 72.559, 60.308, 50.861, 65.375, 62.926, 70.161,
76.615, 64.328, 71.278, 57.754, 61.734, 66.04, 57.962, 56.844,
70.889, 58.485, 65.606, 61.301, 66.876, 47.079, 73.912, 80.114,
59.559, 49.89, 29.104, 60.602, 70.481, 66.94, 72.538, 64.116,
60.579, 66.579, 52.237, 71.65, 74.068, 70.205, 61.413, 69.771,
65.47, 61.813, 64.855, 73.321, 58.804, 70.393, 57.986, 60.365,
69.463, 61.317, 45.124, 0, 63.492, 0, 0, 0.3, 0, 0, 0, 0,
29.118, 0, 0, 0, 0, 0, 0.838, 0, 0, 0, 0, 7.232, 0, 0, 0,
0, 0, 0.4, 0, 0, 0, 67.73, 65.52, 57.589, 65.524, 60.692,
75.595, 71.817, 61.508, 72.19, 75.911, 56.581, 63.549, 69.393,
63.835, 57.988, 43.169, 71.803, 54.076, 33.243, 77.246, 70.999,
58.495, 47.994, 51.257, 70.875, 63.179, 77.211, 63.353, 49.996,
72.651, 50.371, 60.6, 66.92, 72.503, 57.064, 52.697, 58.914,
59.243, 52.637, 55.861, 68.979, 73.941, 62.623, 72.005, 80.262,
41.771, 69.721, 64.639, 81.986, 87.598, 58.017, 66.916, 74.297,
71.967, 65.933, 70.657, 60.856, 52.216, 68.772, 69.043, 59.239,
69.204, 65.91, 83.655, 62.093, 61.576, 55.245, 56.44, 74.885,
70.636, 63.449, 68.166)), row.names = c(NA, -162L), class = "data.frame")
Вот dput (head (data, 5))
structure(list(treatment = structure(c(1L, 1L, 1L, 1L, 1L), .Label = c("Apigenin 0.001",
"Apigenin 0.01", "Apigenin 0.1", "Apigenin 1", "Apigenin 10",
"Arbutin 0.001", "Arbutin 0.01", "Arbutin 0.1", "Arbutin 1",
"Arbutin 10", "blank", "Catechin 0.001", "Catechin 0.01", "Catechin 0.1",
"Catechin 1", "Catechin 10", "Control 0", "Epicatechin 0.001",
"Epicatechin 0.01", "Epicatechin 0.1", "Epicatechin 1", "Epicatechin 10"
), class = "factor"), ID = 1:5, biomass = c(221694, 72639.6,
232935, 199267, 213989), greenness = c(0.15028, 0.22868, 0.19238,
0.23515, 0.21403), height = c(0L, 0L, 0L, 0L, 0L), NDVI = c(65.077,
71.607, 62.782, 74.981, 67.432)), row.names = c(NA, 5L), class = "data.frame")
Вот dput (head (biomassdata, 5))
structure(list(treatment = structure(c(1L, 1L, 1L, 1L, 1L), .Label = c("Apigenin 0.001",
"Apigenin 0.01", "Apigenin 0.1", "Apigenin 1", "Apigenin 10",
"Arbutin 0.001", "Arbutin 0.01", "Arbutin 0.1", "Arbutin 1",
"Arbutin 10", "blank", "Catechin 0.001", "Catechin 0.01", "Catechin 0.1",
"Catechin 1", "Catechin 10", "Control 0", "Epicatechin 0.001",
"Epicatechin 0.01", "Epicatechin 0.1", "Epicatechin 1", "Epicatechin 10"
), class = "factor"), ID = 1:5), row.names = c(NA, 5L), class = "data.frame")
Мой ожидаемый вывод похож на скриншот, за исключением того, что он свернут (т.е. нет Н / Д значения.) Аналогично: апигенин 0,001 <- c (x, y, z, w, s, f) апигенин 0,01 <- c (г, ч, j, u, t, d) et c. где буквы разных наблюдений биомассы. </p>