- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个股票价格的 CRSP 列表如下
PERMNO date TICKER RETX
1 10138 2007-01-03 TROW 0.045236
2 10138 2007-01-04 TROW 0.008743
3 10138 2007-01-05 TROW -0.001950
4 10138 2007-01-08 TROW 0.018237
5 10138 2007-01-09 TROW 0.004051
6 10138 2007-01-10 TROW 0.005734
7 10138 2007-01-11 TROW 0.019637
8 10138 2007-01-12 TROW 0.005591
...
1 10145 2007-01-03 HON -0.003095
2 10145 2007-01-04 HON -0.000443
3 10145 2007-01-05 HON -0.009539
4 10145 2007-01-08 HON 0.006047
5 10145 2007-01-09 HON 0.007124
6 10145 2007-01-10 HON -0.006189
7 10145 2007-01-11 HON 0.016681
8 10145 2007-01-12 HON -0.003282
9 10145 2007-01-16 HON 0.001317
10 10145 2007-01-17 HON -0.001754
11 10145 2007-01-18 HON -0.010979
...
一旦我使用 tidyr::spread(x,TICKER,RETX)
,它就会返回一个矩阵,其中大部分值为 NA。是否有任何其他功能可以重新排列矩阵,将每个股票价格列在一列中?或者如何通过几行来实现?
更新:我发现是 PERMNO 列导致了问题。在我去掉 PERMNO 列后,另一个问题出现了:
> spread(A1[,2:4],TICKER,RETX)
Error: Duplicate identifiers for rows (129717, 143815), (129718, 143816), ...
所以,我只是随机选择消息中提到的两行
PERMNO date TICKER RETX
129717 75104 2007-01-03 CBS 0.012172
> A1[143815,]
PERMNO date TICKER RETX
143815 76226 2007-01-03 CBS 0.01347
原来数据集很脏,它包含重复的系列。更好的解决方案是使用 PERMNO 作为 key 。这是我得到的
date 10225 10516 10909 ...
1 2007-01-03 0.005738 0.003129 -0.006593 ...
2 2007-01-04 -0.011062 -0.005615 0.028761 ...
3 2007-01-05 0.000824 -0.001568 -0.022366 ...
4 2007-01-08 -0.005059 0.005027 -0.003520 ...
5 2007-01-09 0.002956 -0.024383 0.000883 ...
6 2007-01-10 -0.003301 -0.008651 -0.010587 ...
...
这很令人沮丧,但我终于得到了一些东西。无论如何用匹配的 TICKER 替换数字列名称。这是一个演示
PERMNO date FO HON ...
1 10225 2007-01-03 0.005738 -0.003095 ...
2 10225 2007-01-04 -0.011062 -0.000443 ...
3 10225 2007-01-05 0.000824 -0.009539 ...
4 10225 2007-01-08 -0.005059 0.006047 ...
5 10225 2007-01-09 0.002956 0.007124 ...
6 10225 2007-01-10 -0.003301 -0.006189 ...
7 10225 2007-01-11 0.007925 0.016681 ...
8 10225 2007-01-12 -0.010914 -0.003282 ...
最佳答案
如果您在某些地方有重复数据,您首先需要删除这些值,否则,如果您使用 tidyr::spread
,它将用长度替换值。无论如何,假设您已经使用 unique 或类似的东西删除了重复项,这就是我使用 tidyr 的方法,因为这就是您的要求,而且 tidyr 非常漂亮和简洁:
A1 <- spread(A1[, c("date", "TICKER", "RETX")], TICKER, RETX)
如果您包含 PERMNO
,您将在 TICKER
的特定值在 PERMNO
中没有匹配值的每一行得到 NA >。
关于r - tidyr 中的 spread() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28467368/
关于这两个插件的文档中没有太多详细信息,我知道它们都使 {...obj} 之类的语法有效。 但是我如何决定使用哪个插件呢? 最佳答案 我们在这里有相关文档:https://babeljs.io/doc
我的状态如下所示: state: { 1: {show: false, description: 'one'}, 2: {show: false, description: 'two'
我刚刚尝试启动 spread用于我用于集成不同传感器数据流程的一些工具的通信。 启动传播退出后立即显示以下消息: Conf_load_conf_file: using file: spread.con
这个问题在这里已经有了答案: Transpose / reshape dataframe without "timevar" from long to wide format (9 个回答) 关闭3年
我有这样的默认状态: this.state = { location:{ lat: 1234, lng: 3245 } } 所以每次我想更新纬度或经度时我都必须这样做 this
我正在使用 yeoman 生成器 react-webpack .我正在尝试在 Main.js 组件中使用传播属性: require('normalize.css'); require('styles/
我想知道是否可以使用 Spread 运算符在数组中添加具有特定键的元素。 let foo = ['a','b','c']; foo = [...foo,'d']; 在这种情况下,foo[3] 将是 d
开发数据库时,方法spread将数组值转换为命名参数是必不可少的。 但是当解析的数据无法直接映射时如何做同样的事情呢? 以下是嵌套事务的简单示例: db.tx(function () { re
我正面临如下描述的算法问题:给定一条从 0 到 N(非常大的 N)的直线,该直线上的 X 点列表,以及一个数字 Z(0= X 简化为 O(XlogN)。 关于algorithm - 从一条线上的点中选
我正在从一本书中学习 react ,在一个示例中,作者以这种方式制作了一个组件 return ( {[...Array(totalStars)].map((n,i)=
假设我有一个数字列表: some_numbers = [16.0, 16.01, 24.53, 22.99, 22.72, 22.71, 22.2, 21.36, 21.34, 21
几天来我对浅拷贝和深拷贝的真正定义感到非常困惑。 当我阅读关于浅拷贝的 mdn 文档 ( https://developer.mozilla.org/en-US/docs/Glossary/Shall
我有一个包含两列的数据集:第一列名为“键”并包含日期时间(尽管当前采用字符形式),第二列包含更多日期时间值。我想使用 spread 使键行成为列名。有点复杂,但一旦完成,我会将 tibble 转换为列
我们有以下数据框 a,内容如下: > a google_prod Value 1 categoria ML 2 google
在使用spread函数时,如何在保持数字排名的情况下进行扩容? library(tidyverse) data.frame(time = paste0("t_", 1:100)) %>% roww
我认为这已被多次询问,但我找不到合适的词来找到可行的解决方案。 我该怎么办 spread()基于多个键的多个值的数据框? 我正在处理的简化(我有更多的列要传播,但只有两个键:Id 和 time 给定测
考虑这个简单的例子 mydf mydf # A tibble: 2 x 3 regular_col normal_col weird_col 1
我需要使用 axios 处理未知数量的 AJAX 请求(1 个或更多),并且我不确定如何处理响应。我想要一些类似的东西: let urlArray = [] // unknown # of urls
这个问题已经有答案了: What are these three dots in React doing? (23 个回答) 已关闭 4 年前。 根据我的理解,这就是展开运算符的工作原理: x=[1,
我有 R data.frames 有不同数量的列。最后一列是数字,其余是字符串。我需要对它们进行排列,以便展开最后一个非数字列。困难在于我想以编程方式执行此操作,因为我不知道列名。 例如 df <-
我是一名优秀的程序员,十分优秀!