按列删除 label/name 为 X.ERROR, X.ERROR.2 in R - Datastream
Delete Column by Column label/name as X.ERROR, X.ERROR.2 in R - Datastream
我从 5413 家公司组成的数据流中下载了伦敦证券交易所 15 年的股票价格数据。当您从 Datastream 下载数据时,其数据不可用的公司会在 label.I 列中用 #ERROR 替换公司名称说明 excel sheet
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 并且这些行是 blans 甚至没有分配 NA。我的数据集很大,应用起来会很麻烦 Price$X.ERROR <- NULL
。此外,我发现它效率低下。
那么,如何在我的数据集中找到所有这些 X:ERROR 然后删除这些列。
我创建了一个示例数据框如下:
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))
对于名称中包含 "X.ERROR"
的所有列,此 returns 为 TRUE。现在您可以将它们从数据框中移除:
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
我从 5413 家公司组成的数据流中下载了伦敦证券交易所 15 年的股票价格数据。当您从 Datastream 下载数据时,其数据不可用的公司会在 label.I 列中用 #ERROR 替换公司名称说明 excel sheet
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 并且这些行是 blans 甚至没有分配 NA。我的数据集很大,应用起来会很麻烦 Price$X.ERROR <- NULL
。此外,我发现它效率低下。
那么,如何在我的数据集中找到所有这些 X:ERROR 然后删除这些列。
我创建了一个示例数据框如下:
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))
对于名称中包含 "X.ERROR"
的所有列,此 returns 为 TRUE。现在您可以将它们从数据框中移除:
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