大家早上好,这是我第一次在stack overflow上发帖。感谢任何帮助!
我有2个用于分析股票数据的数据框。一个数据框包含日期和其他信息,我们可以将其称为df:
df1 <- tibble(Key = c('a','b','c'), i =11:13, date= ymd(20110101:20110103))
第二个数据框也有日期和其他重要信息。
df2 <-tibble(Answer = c('a','d','e','b','f','c'), j =14:19, date= ymd(20150304:20150309))
这是我想做的:对于df1中的每一行,我需要:
-在df2中查找日期,当df2$答案与df1$key相同时,它最接近df1中该行的日期。
-然后提取df2中该行的另一列的信息,并将其放入df1中的新行。
我尝试的代码:
df1 %>%
group_by(Key, i) %>%
mutate(
`New Column` = df2$j[
which.min(subset(df2$date, df2$Answer== Key) - date)])
其结果是:
Key i date `New Column`
1 a 11 2011-01-01 14
2 b 12 2011-01-02 14
3 c 13 2011-01-03 14
对于第一行 a
,这是正确的。在 df2
中,最接近的日期是 2015-03-04
,其中 j
的值实际上是 14
。
但是,对于第二行,Key=b
,我希望df2
子集只查看df2$Answer=b
所在行的日期。因此,日期应为2015-03-07
,其中j=17
。
谢谢你的帮助!
耶西
这应该可行:
library(dplyr)
df1 %>%
left_join(df2, by = c("Key" = "Answer")) %>%
mutate(date_diff = abs(difftime(date.x, date.y, units = "secs"))) %>%
group_by(Key) %>%
arrange(date_diff) %>%
slice(1) %>%
ungroup()
我们首先用left_join
连接两个数据帧。是的,我知道每个键
可能有多个日期,请放心。
接下来,我们计算(使用mutate
)两个日期date. x
和date. y
之间差异的绝对值(abs
。
现在我们有了这个,我们将使用<code>group_by</code>按<code>键</code>对数据进行分组。这将确保每个不同的键
将在后续计算中单独处理。
由于我们已经计算了< code>date_diff,现在我们可以重新排序(< code >排列)每个< code >键的数据,将最小的< code>date_diff作为每个< code >键的第一个。
最后,我们只对每个键
的第一个最小date_diff
感兴趣,因此我们可以使用 slice(1)
丢弃其余部分。
这条管道为我们提供了以下内容:
Key i date.x j date.y date_diff
<chr> <int> <date> <int> <date> <time>
1 a 11 2011-01-01 14 2015-03-04 131587200
2 b 12 2011-01-02 17 2015-03-07 131760000
3 c 13 2011-01-03 19 2015-03-09 131846400
本文向大家介绍Rdplyr的单表动词,包括了Rdplyr的单表动词的使用技巧和注意事项,需要的朋友参考一下 示例 dplyr在中引入了数据处理语法R。它提供了一个一致的接口来处理数据,无论数据存储在哪里:data.frame,data.table或database。其中的关键部分dplyr是使用Rcpp编写的,这使得使用内存数据的速度非常快。 dplyr公司的理念是拥有能做一件事的小功能。这五个简
我如何在配置更改时保留这个列表?我已经寻找了许多解决方案,但许多人建议在manifest中使用'Android:ConfigChanges',我完全反对使用。许多人建议,我也读到过--在Fragment中使用setRetaInstance(true)来保留这个片段。 我尝试实现它,但我失败了。许多教程在方向改变后使用findFragmentByTag检查片段,但在我的情况下,它总是返回null。有
问题内容: 我使用的是Swift,我希望能够在旋转到风景时加载UIViewController,有人可以指出正确的方向吗? 我在网上找不到任何东西,并且对文档有些困惑。 问题答案: 这是我的工作方式: 在里面 我把函数: 然后在AppDelegate类中放入以下函数: 希望这对其他人有帮助! 谢谢!
jQuery Mobile 方向改变(orientationchange)事件 当用户垂直或水平旋转移动设备时,触发方向改变(orientationchange)事件。 $(document).ready(function(){ $("#btn").click(function(){ $(".iphone").css({ '-webkit-transform':'rotate(90deg)'
问题内容: 是否可以使用JavaScript在iPad或Galaxy Tab上检测浏览器方向的变化?我认为使用CSS媒体查询是可能的。 问题答案: 更新: 您可能要签出 jQuery移动方向更改 或普通的JS之一: MDN: 较旧的答案 http://www.nczonline.net/blog/2010/04/06/ipad-web-development- tips/ iPad上的Safari
问题内容: 我想将两个图像添加到单个图像视图(即,用于横向显示一个图像,用于纵向显示另一个图像),但是我不知道如何使用快速语言检测方向变化。 我尝试了这个答案,但只拍了一张图片 我是iOS开发的新手,任何建议将不胜感激! 问题答案: