R 向xts对象添加因子列

R 向xts对象添加因子列,r,xts,R,Xts,使用unique命令,我可以很容易地从我的原始每日股票数据中获得一个独特的股票代码列表。其结果是: my.table <- unique(my.frame1[,5]) > my.table [1] NPN BIL CFR IMP FSR SHF SHP REI INP OML REM ABL AGL SAB WHL BTI MMI RMI PIK TRU INL SPP CLS [24] SBK PPC IPL SOL ASA RMH MTN ANG EXX DSY NED SLM

使用unique命令,我可以很容易地从我的原始每日股票数据中获得一个独特的股票代码列表。其结果是:

my.table <- unique(my.frame1[,5])
> my.table
 [1] NPN BIL CFR IMP FSR SHF SHP REI INP OML REM ABL AGL SAB WHL BTI MMI RMI PIK TRU INL SPP CLS
[24] SBK PPC IPL SOL ASA RMH MTN ANG EXX DSY NED SLM AVI KIO VOD GFI APN
40 Levels: ABL AGL ANG APN ASA AVI BIL BTI CFR CLS DSY EXX FSR GFI IMP INL INP IPL KIO ... WHL
my.table my.table
[1] NPN BIL CFR IMP FSR SHP REI INP OML REM ABL AGL SAB WHL BTI MMI RMI PIK TRU INL SPP CLS
[24]SBK PPC IPL SOL作为RMH MTN和EXX DSY NED SLM AVI KIO VOD GFI APN
40个级别:ABL AGL ANG APN ASA AVI BIL BTI CFR CLS DSY EXX FSR GFI IMP INP IPL KIO。。。WHL
然而,我现在通过循环列表来做一些基本的计算。我试图为每个交易日分配股票代码,但列表中的观察结果与我的数据没有预期的相互作用:

> code <- my.table[2]
> code
[1] BIL
40 Levels: ABL AGL ANG APN ASA AVI BIL BTI CFR CLS DSY EXX FSR GFI IMP INL INP IPL KIO ... WHL 

> my.daily <- my.daily[,3:6]
> my.daily[,1] <- code
> my.daily
           my.xts...1..Low my.xts...1..Close     VWAP SIDE
2011-08-31               7             23765 23744.30    1
2011-09-08               7             22876 23056.72    1
2012-02-14               7             25050 25230.52   -1
2012-07-25               7             23480 23591.01   -1
2013-05-12               7             26818 26737.65   -1
>代码
[1] 比尔
40个级别:ABL AGL ANG APN ASA AVI BIL BTI CFR CLS DSY EXX FSR GFI IMP INP IPL KIO。。。WHL
>每日我的每日我的每日
my.xts…1..降低my.xts…1..关闭VWAP侧
2011-08-31               7             23765 23744.30    1
2011-09-08               7             22876 23056.72    1
2012-02-14               7             25050 25230.52   -1
2012-07-25               7             23480 23591.01   -1
2013-05-12               7             26818 26737.65   -1
现在,根据上面代码的值,我希望xts对象中的第一列是“BIL”


请问我遗漏了什么?

您的
xts
是一个数字矩阵。矩阵中不能有多种类型(数字和因子)。该因子被强制为一个因子(如已注释的)以具有单个类型(此处为数字)

作为一种解决方法,您可以首先将xts对象强制为data.frame

my.daily <- as.data.frame(my.daily)
my.daily[,1] <- code

my.daily可能是因为
code
是一个因素(其中
BIL
是第7级)。在尝试将其存储在
my.daily
中之前,请将其转换为字符。谢谢!我这样做的原因是,作为最后一步,我可以整理各种股票的结果。我使用这些数据分析特定账户的交易执行情况,这意味着在数天内可能会有大量股票。