Удалить столбец по метке / имени столбца как 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
Другие вопросы по тегам