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
功能。它不是一个数据帧。。。它是一个“表”,表现为一个矩阵。