Animal ID
1 38-L
2 <NA>
3 39-L
4 <NA>
5 40-L
6 <NA>
etc.
Я читаю приведенные выше данные из электронной таблицы Excel.Затем я хочу удалить -L и -R из вектора, преобразовать их в числовые и заменить отсутствующие значения на число, приведенное выше.
Мой код выглядит следующим образом:
SugarData <- as.data.frame(read_excel(InFile[2], sheet = "Data for stats (+RN) (+FA)", range = "D1:D161"))
head(SugarData)
BirdNumber <- as.numeric(str_replace_all(SugarData[, 1], "[-LR]", ""))
for (i in seq(1, length(BirdNumber) - 1, by = 2)) {
BirdNumber[i + 1] <- BirdNumber[i]
}
SugarData[1] <- BirdNumber
Это работает, но моя проблема двоякая.
Когда я читаю это как tibble, функция str_replace_all не работает, как я ожидал, и я думаю, что, возможно, есть более элегантный способ сделать это.
Надеюсь, что кто-то может помочь.
С уважением, Алан.
Моя главная проблема заключается в том, что когда я читаю данные в виде таблицы, а затем использую:
BirdNumber <- str_replace_all(SugarData[, 1], "[-LR]", "")
Я получаю следующее:
"c(\"38\", NA, \"39\", NA, \"40\", NA, \"41\", NA, \"42\", NA, \"44\", NA, \"45\", NA, \"46\", NA, \"49\", NA, \"53\", NA, \"158\", NA, \"159\", NA, \"161\", NA, \"163\", NA, \"164\", NA, \"166\", NA, \"167\", NA, \"168\", NA, \"169\", NA, \"170\", NA, \"398\", NA, \"400\", NA, \"401\", NA, \"403\", NA, \"404\", NA, \"405\", NA, \"407\", NA, \"408\", NA, \"409\", NA, \"410\", NA, \"521\", NA, \"522\", NA, \"523\", NA, \"524\", NA, \"525\", NA, \"526\", NA, \"527\", NA, \"529\", NA, \"530\", NA, \"533\", \nNA, \"578\", NA, \"580\", NA, \"581\", NA, \"582\", NA, \"584\", NA, \"585\", NA, \"588\", NA, \"589\", NA, \"590\", NA, \"593\", NA, \"602\", NA, \"605\", NA, \"606\", NA, \"607\", NA, \"608\", NA, \"609\", NA, \"610\", NA, \"611\", NA, \"612\", NA, \"616\", NA, \"702\", NA, \"705\", NA, \"706\", NA, \"707\", NA, \"708\", NA, \"709\", NA, \"710\", NA, \"711\", NA, \"712\", NA, \"713\", NA, \"821\", NA, \"822\", NA, \"823\", NA, \"824\", NA, \"826\", NA, \"827\", NA, \"828\", NA, \"830\", NA, \"831\", \nNA, \"832\", NA)"