【问题标题】:Missing values using reshape2使用 reshape2 缺失值
【发布时间】:2015-07-10 21:57:06
【问题描述】:

我的问题与此处发布的问题非常相似。我正在尝试使用重塑数据将 CRSP 数据从长格式转换为宽格式。我将标准普尔公司的股票代码堆叠在一列中,而我想将它们设为列。在我的数据框中,我有三列:“DATE”、“TICKER”和“PRC”。 (中国是价格)。 相反,我希望列数等于我的唯一代码。我用:

dcast(df, DATE~TICKER, value.var="PRC"), fun.aggregate=length, fill=NaN, drop=FALSE)

这将返回完美的数据框,对左侧的时间序列日期和右侧的代码进行排序,但就像我链接到的问题一样,我将 1 和 NaN 作为我的值。我喜欢 NaN,但我希望将 1 替换为我的证券(即 PRC)的价格。

我得到 1 和 0 是因为一些股票代码缺少数据,这是有道理的,因为一些股票进出标准普尔 500 指数。我只是不知道为什么 value.var 命令被公然忽略。

how to format a column with duplicate dates in r

【问题讨论】:

  • 你能发布一个示例数据集吗?

标签: r reshape2


【解决方案1】:

如果没有可用的数据集,这就是我真正能提供的一切。

data.melt <- melt(df, id.vars=c('TICKER','DATE'), measure.vars='PRC')
data.cast <- dcast(data.melt, TICKER~DATE, sum)

【讨论】:

    【解决方案2】:

    value.var 没有被忽略。问题是您指定了fun.aggregate=length。这意味着它不会为您提供实际值,而是聚合函数的结果,在本例中为 length,因此您得到 1 和 0,因为您缺少数据(0)或 1 个数据点.

    尝试取出 fun.aggregate。有时当缺少数据时会很麻烦,因此您可能会收到错误,然后带回 fun.aggregate 但将 length 替换为 summean

    【讨论】:

      猜你喜欢
      • 2016-04-25
      • 2014-08-08
      • 2013-06-22
      • 2020-01-20
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多