Я импортирую большой набор числовых данных в R из Excel. Данные представляют собой числа химического состава, и я часто получаю значения, например, «<1». Каждый раз, когда у меня есть «<1» во фрейме данных, R считывает / выводит его как NA.
Кажется, это делается при чтении файла excel, поэтому мои попытки использовать gsub для замены "<" на "" не работают, поскольку число с самого начала не обрабатывается как числовое.
Я хотел бы получить эти данные и сделать так, чтобы все, что имеет значение «<1», было просто «1». Но, как я уже сказал, он импортируется как АН, и я не знаю, что делать.
Я новичок в R, поэтому, пожалуйста, смиритесь с моей ограниченной способностью четко определить мою проблему.
Заранее спасибо!
Сколько столбцов в наборе данных и сколько из них должно быть числовым? Один из подходов - прочитать все как строку, выполнить замену и привести к числовому. В качестве альтернативы, если единственное недостающее значение возникает из-за значений <1, вы можете просто установить для всех отсутствующих значений в числовых столбцах значение 1. Я был бы рад объяснить любой подход.
Какие команды вы используете для импорта данных? Вам будет легче помочь, если вы включите простой воспроизводимый пример с образцом ввода и желаемым выводом, который можно использовать для тестирования и проверки возможных решений. Трудно помочь, если мы даже не знаем, какой код вы используете.
Моя электронная таблица содержит 15 листов, каждый из которых состоит из 3-25 столбцов данных. Каждый столбец может содержать или не содержать знаки «<». Мне нужно удалить «<» и сохранить все # как числа, чтобы значения можно было изобразить.





читать столбец как символ / текст
образец данных (./test.xlsx)
код
df <- readxl::read_excel( "./test.xlsx", sheet = 1, col_types = c("text") )
df
# number
# <chr>
# 1 1
# 2 2
# 3 3
# 4 <1
# 5 3
#post-processing
library( dplyr )
df %>% mutate( number = gsub("<", "", number ) %>% as.numeric )
# # A tibble: 5 x 1
# number
# <dbl>
# 1 1
# 2 2
# 3 3
# 4 1
# 5 3
Это решение дает мне половину пути, но в моей электронной таблице много столбцов. Есть ли общий способ указать R перейти в каждый столбец и заменить «<» без необходимости называть столбец по имени? У меня есть 15 листов, каждый из которых содержит столбцы с уникальными именами, поэтому я не могу каждый раз называть их кодом ...
@SRO да, можно. но это другой вопрос (на который также был дан ответ, поэтому используйте поиск)
<1- это не числовые данные, а тип символа. Вы пробовали читать столбец excel как символ?