R 取消堆叠所需的替代方案

R 取消堆叠所需的替代方案,r,R,我在一列中有一些不规则的数据 my.table <-read.table(text="ticker,date,last a,12/20/2011,289295 a,12/21/2011,NA a,12/27/2011,297001 a,12/28/2011,NA b,12/20/2011,151253 b,12/21/2011,NA b,12/27/2011,152413 b,12/28/2011,NA b,1/4/2012,NA d,12/21/2011,98.52 d,12/28/20

我在一列中有一些不规则的数据

my.table <-read.table(text="ticker,date,last
a,12/20/2011,289295
a,12/21/2011,NA
a,12/27/2011,297001
a,12/28/2011,NA
b,12/20/2011,151253
b,12/21/2011,NA
b,12/27/2011,152413
b,12/28/2011,NA
b,1/4/2012,NA
d,12/21/2011,98.52
d,12/28/2011,99.36
d,1/4/2012,103.22", header=TRUE, as.is=TRUE,sep = ",")
我希望我的桌子看起来像这样:

               a       b     c
12/20/2011  289295  151253   NA
12/21/2011  NA      NA     98.52
12/27/2011  297001  152413   NA
12/28/2011  NA      NA     99.36
1/4/2012    NA      NA     103.22

您看过
重塑2
软件包了吗

library("reshape2")
dcast(my.table, date~ticker)

Using last as value column: use value.var to override.
        date      a      b      d
1   1/4/2012     NA     NA 103.22
2 12/20/2011 289295 151253     NA
3 12/21/2011     NA     NA  98.52
4 12/27/2011 297001 152413     NA
5 12/28/2011     NA     NA  99.36
Using last as value column: use value.var to override.
        date      a      b      d
1 2011-12-20 289295 151253     NA
2 2011-12-21     NA     NA  98.52
3 2011-12-27 297001 152413     NA
4 2011-12-28     NA     NA  99.36
5 2012-01-04     NA     NA 103.22
或者如果您想先将日期转换为内部日期格式

my.table$date <- as.Date(my.table$date, format="%m/%d/%Y")
dcast(my.table, date~ticker)

您看过
重塑2
软件包了吗

library("reshape2")
dcast(my.table, date~ticker)

Using last as value column: use value.var to override.
        date      a      b      d
1   1/4/2012     NA     NA 103.22
2 12/20/2011 289295 151253     NA
3 12/21/2011     NA     NA  98.52
4 12/27/2011 297001 152413     NA
5 12/28/2011     NA     NA  99.36
Using last as value column: use value.var to override.
        date      a      b      d
1 2011-12-20 289295 151253     NA
2 2011-12-21     NA     NA  98.52
3 2011-12-27 297001 152413     NA
4 2011-12-28     NA     NA  99.36
5 2012-01-04     NA     NA 103.22
或者如果您想先将日期转换为内部日期格式

my.table$date <- as.Date(my.table$date, format="%m/%d/%Y")
dcast(my.table, date~ticker)
(由于没有日期分类变量,因此按alpha排序。)

(由于没有日期分类变量,因此按alpha排序。)


假设数据位于文件
data.txt
中,请尝试此操作。参数指的是文件名,数据有一个头,字段分隔符是逗号,第一列要拆分,第二列是时间索引,时间索引的格式如图所示

library(zoo)
z <- read.zoo("data.txt", header = TRUE, sep = ",", split = 1, index = 2, 
       format= "%m/%d/%Y")
上面的代码一次读入并转换所有内容,但如果您已经使用问题中的代码将其读入
my.table
,则仅此而已:

z <- read.zoo(my.table, split = 1, index = 2, format = "%m/%d/%Y")

z假设数据位于文件
data.txt
中,请尝试此操作。参数指的是文件名,数据有一个头,字段分隔符是逗号,第一列要拆分,第二列是时间索引,时间索引的格式如图所示

library(zoo)
z <- read.zoo("data.txt", header = TRUE, sep = ",", split = 1, index = 2, 
       format= "%m/%d/%Y")
上面的代码一次读入并转换所有内容,但如果您已经使用问题中的代码将其读入
my.table
,则仅此而已:

z <- read.zoo(my.table, split = 1, index = 2, format = "%m/%d/%Y")

z@Ritchie Cotton的可能重复-我的问题是单个列的重塑/取消堆叠问题。你链接到的帖子通过绑定几个data.frames解决了。@RichieCotton:我不这么认为。这个问题以向量列表开始,以矩阵结束。这从一个数据帧开始,以一个数据帧结束。可能重复@Ritchie Cotton-我的问题是单个列的重塑/取消堆叠问题。你链接到的帖子通过绑定几个data.frames解决了。@RichieCotton:我不这么认为。这个问题以向量列表开始,以矩阵结束。这以数据帧开始,以数据帧结束。非常感谢。不知道关于
重塑2
。原来的
重塑
没有给我想要的。非常感谢。不知道关于
重塑2
。原来的
重塑
没有给我我想要的。最后的“我”的目的是什么?我知道I(x)的意思是as.is,但我不明白您的代码如何将我们变成data.frame。您只需要一些返回原子值不变的函数。它还可以使用
c
identity
功能。它不是一个数据帧。。。它是一个“表”,表现为一个矩阵。最后的“I”的目的是什么?我知道I(x)的意思是as.is,但我不明白您的代码如何将我们变成data.frame。您只需要一些返回原子值不变的函数。它还可以使用
c
identity
功能。它不是一个数据帧。。。它是一个“表”,表现为一个矩阵。