首页 > 解决方案 > 在 Rcpp 中的数据框中查找特殊行(Rcpp 中的过滤对应于 R 中的 filter())

问题描述

我是 Rcpp 的新手。假设我们有两个数据帧:edge 和 ref,edge 由三列组成:time、sender、receiver。ref由三列sender、receiver和teller组成。柜员显示从 1 到 nrow(ref) 的行索引。您可以在下面看到一个示例。我想遍历“edge”的每一行并找到“ref”的哪一行与那一行相同。假设您通过 edge 和 ref 发现 ref 中该行的索引为 10。然后我创建一个数据框,例如“dat”,有两列:时间和状态。然后我将 dat$status 中的相应值替换为 1。即dat$status[10]<- 1。我在R中写的代码如下:

cdata <- lapply(2:nrow(edge), function(z) {
welke <- filter(ref, sender == edge[z, "sender"], receiver == edge[z, "receiver"])$teller
dat <- matrix(0, nrow = nrow(ref), ncol = 2) %>%
  as.data.frame() %>%
  set_colnames(c("time","status"))
dat$status[welke] <- 1

return(dat)
}) %>%
 dplyr::bind_rows()

示例:边缘和参考

我不知道如何翻译成 Rcpp。

标签: rcpp

解决方案


推荐阅读