Удалить столбец по метке / имени столбца как X.ERROR, X.ERROR.2 в R - Datastream
Я загрузил данные о ценах на акции Лондонской фондовой биржи из потока данных, состоящего из 5413 компаний, за 15 лет. Когда вы загружаете данные из Datastream, компании, чьи данные недоступны, заменяют название компании на #ERROR в метке столбца. Я иллюстрирую таблицу Excel
Date A B #ERROR #ERROR E F
31-12-1999 1 2 3 4
3-1-2000
Итак, когда я импортирую его в R, у меня есть
Date A B X. ERROR X.ERROR.1 E F
1999-12-31 1 2 3 4
2000-1-3 NA NA NA NA
Как можно видеть, R изменяет его на X.ERROR и X.ERROR.1, и строки являются пробелами, даже не назначенными NA. Мой набор данных огромен, было бы очень трудно применить Price$X.ERROR <- NULL
, Кроме того, я считаю, что это неэффективно. Итак, как найти все эти X:ERROR в моем наборе данных, а затем удалить эти столбцы.
1 ответ
Я создаю образец фрейма данных следующим образом:
df <- data.frame(Date = 1:5,
A = 1:5,
B = 1:5,
X.ERROR = 1:5,
X.ERROR.1 = 1:5,
E = 1:5,
F = 1:5)
df
## Date A B X.ERROR X.ERROR.1 E F
## 1 1 1 1 1 1 1 1
## 2 2 2 2 2 2 2 2
## 3 3 3 3 3 3 3 3
## 4 4 4 4 4 4 4 4
## 5 5 5 5 5 5 5 5
Затем я ищу имена столбцов, которые будут удалены:
to_del <- grepl("X.ERROR", names(df))
Это возвращает TRUE для всех столбцов, которые имеют "X.ERROR"
во имя Теперь вы можете удалить их из фрейма данных:
df <- df[!to_del]
df
## Date A B E F
## 1 1 1 1 1 1
## 2 2 2 2 2 2
## 3 3 3 3 3 3
## 4 4 4 4 4 4
## 5 5 5 5 5 5