我有一个包含8000列和3785行的数据帧 . 列是公司名称,因此,我想通过从投标价格中减去其要价,即公司/股票的价差= A.ASK- A.BID来计算公司的价差 . 在列名中A.ASK表示A是公司名称,而.ASK表示它是公司的ASK价格,其中.BID是A的BID价格 . 在我的数据框架中,公司的所有询问和出价都是并排列,如下面的示例数据框所示 . 此外,我缺少数据,例如,如果公司C在2001年开始交易,它将在2000年获得NA . 所以,我想要的不是忽略计算的日期列,另外还有NA的公司要求和出价的返回结果列中的NA
Date A . ASK A .BID C. ASK C. BID
31/12/1999 NA NA NA NA
03/01/2000 NA NA NA NA
04/01/2000 82 77 NA NA
05/01/2000 82 77 NA NA
06/01/2000 82 77 NA NA
07/01/2000 82 77 NA NA
10/01/2000 82 77 NA NA
11/01/2000 82 77 NA NA
12/01/2000 NA NA NA NA
13/01/2000 NA NA NA NA
14/01/2000 NA NA 70 67
17/01/2000 NA NA 70 67
18/01/2000 97 94 70 67
19/01/2000 97 92 70 67
DF2 <-df1
Date A C
31/12/1999 NA NA
03/01/2000 NA NA
04/01/2000 5 NA
05/01/2000 5 NA
06/01/2000 5 NA
07/01/2000 5 NA
10/01/2000 5 NA
11/01/2000 5 NA
12/01/2000 NA NA
13/01/2000 NA NA
14/01/2000 NA 3
17/01/2000 NA 3
18/01/2000 3 3
19/01/2000 5 3
非常感谢您的帮助
1 回答
具有格式良好的数据,在每个公司的询价和出价之间交替,这使得这相对简单 . 以下代码应该可以满足您的需求 .
给予
编辑:定义ask_cols和bid_cols的更好方法是使用
seq
函数编辑2:匹配公司名称的更好的正则表达式是使用前瞻匹配任何后跟.ASK的字符系列 .