Невозможно преобразовать буквенно-цифровые значения в наборе данных в просто числовые - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь получить значения m / z и интенсивности эксперимента в виде координат x и y. Я использую пакет Cardinal MSI для загрузки своих данных, так как ничто другое не может прочитать мои файлы данных и усреднить все интенсивности по набору данных для каждого значения m / z. Это работает нормально, но у меня остается значение, включающее формат «m / z = 900.01» для значения m / z и просто число для интенсивности.

Пока что я пробовал просто использовать

data <- gsub("m/z = ", "", data)

, который просто полностью исключает значение m / z. Я также попытался преобразовать в фрейм данных вместо значения, это прекрасно работает, но тогда значение m / z - это набор заголовков для интенсивности. Опять же, попытка gsub полностью удаляет значение m / z. Есть ли другой способ удалить «m / z =» и получить только число, которое следует за ним, при этом оно все еще связано со значением интенсивности? Спасибо!

1 Ответ

0 голосов
/ 17 апреля 2019

Похоже, у вас есть именованный вектор , где, например, имя "m/z = 899.91" имеет значение 0.6186..., имя "m/z = 900.36" имеет значение 1.35811... и т. Д. Ваш векторявляется числовым, и значения - это все те части, которые меньше единицы.

899,91, 900,36 и т. Д. Являются частью имен .Так что as.numeric(gsub("m/z = ", "", names(data))) должен получить числовую часть имен.

Возможно, вы захотите создать фрейм данных с одним столбцом для m / z и одним столбцом для интенсивности:

my_data = data.frame(
  mz = as.numeric(gsub("m/z = ", "", names(data))),
  intensity = data
) 

Затем вы можете plot(my_data) или создать другие, более причудливые графики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...