Итак, у меня есть набор данных, и я пытаюсь найти все локальные максимумы на полученной кривой. Я читал в CSV-файле, который имеет x-значения в первом столбце и y-значения во втором, первый шаг, простой.Принуждение вектора к цифровому режиму в R
Чтобы найти максимальные значения, я попытался использовать функцию findpeaks()
из базы данных pracma
. Тем не менее, каждый раз, когда я попытался запустить его, я получил ту же ошибку:
Error: is.vector(x, mode = "numeric") is not TRUE
Итак, я первый раз попробовал преобразовывая это вектор. По-прежнему была та же проблема, однако is.vector(x, mode = "any")
теперь вернулась. Я нашел некоторые другие потоки справки (которые я больше не могу найти, поэтому я не могу поделиться ими, извините!) И решил попробовать использовать lapply
, чтобы принудить каждую запись в новом векторе, используя as.numeric
. Не работает. Посмотрел на ?as.numeric
, и он упомянул, что as.double
может быть лучше подходит. Не работает. Теперь я в недоумении и не уверен, что делать - текущий рабочий код показан ниже.
plot <- read_csv("AFGP60 UV-05-04-16.csv",
col_names = FALSE, na = "null", skip = 2,n_max = numrow)
diffplot <- c(plot[1:601,2])
diffplot <- lapply(diffplot,as.double)
findpeaks(diffplot)`
Из вашего описания невозможно узнать, как выглядят ваши данные. Используйте инструменты, такие как 'str()' и 'dput()', чтобы показывать свои данные. –
Возможно, вы прочитали его как строку, и это, вероятно, было указано в CSV. Исправление состоит в том, чтобы использовать 'read_csv (..., col_types) 'Пожалуйста, дамп нам данные, как @ RomanLuštrik спросил. Кроме того, не говорите нам * «использование' as.numeric' не работает * *; покажите нам точное предупреждение об ошибке (а также данные). – smci
Я не хотел делиться данными из-за его размера и того факта, что это часть моих исследований. Был надеется, что я дал достаточно информации в своем описании самих данных. Тем не менее, я не знал о функциях str() и dput() - dput(), заставив меня понять, что вектор был сохранен в списке, поэтому я просто добавил diffplot <- unlist (diffplot), и это сделало обмануть! Что касается 'as.numeric', который не работает, предупреждение об ошибке было не так много. As.numeric сделал свое дело, а затем я получил ту же ошибку, что и 'is.vector', возвращающий false. – keefles