r - 基于 R 中另一个表的值在表中首次出现
问题描述
所以我有以下表格:
表 1:
Variable timestamp
s1 1053093896
s2 1053095216
s1 1053181616
s1 1053959216
s2 1054132016
和表 2:
Variable timestamp
s1 1053129600
s2 1053820800
我想提取每个变量的第一次出现,其中 tab1 的时间戳高于 tab2 的时间戳。我寻求的结果如下:
Variable timestamp
s1 1053181616
s2 1054132016
解决方案
这是使用该dplyr
软件包的一种方式。我修改了数字以获得更好的可读性。
df1 <- data.frame(variable = c("s1", "s2", "s1", "s1", "s2"),
timestamp = 1:5, stringsAsFactors = F)
df2 <- data.frame(variable = c("s1", "s2"),
timestamp = c(2, 4), stringsAsFactors = F)
> df1
variable timestamp
1 s1 1
2 s2 2
3 s1 3
4 s1 4
5 s2 5
> df2
variable timestamp
1 s1 2
2 s2 4
library(dplyr)
df1 %>% left_join(df2, by = "variable", suffix = c("", "_2")) %>%
filter(timestamp > timestamp_2) %>%
group_by(variable) %>%
slice(1) %>%
select(-timestamp_2)
# A tibble: 2 x 2
# Groups: variable [2]
variable timestamp
<chr> <int>
1 s1 3
2 s2 5
推荐阅读
- maven - jenkins(openshift) chrome 节点上的“org.openqa.selenium.WebDriverException:未知错误:Chrome 无法启动:异常退出”问题
- php - 如何使用 Laravel 显示具有匹配记录字段的用户?
- javascript - d3 树工具提示不出现
- scala - Scala:如何异步捕获通过 Kafka 发送的所有多条消息的状态?
- android - GPS位置检索和在后台比较值的最佳方法?
- javascript - 大量输入,但在 redux-saga 中只有一个按钮提交
- python-3.x - 如何优化xgb回归模型?
- autohotkey - 逐个字符粘贴剪贴板中的文本
- python - 从列表推导转换回 for 循环
- asp.net-mvc - 将 Asp .net 验证放入常规 html 标记