首页 > 解决方案 > 从与另一列中的某些值对应的列中获取值,直到我们在第二列中获得相同的值

问题描述

我知道标题不清楚。但我会举例说明

我有一个包含两列 A 和 B 的数据框“df”。

数据集df

如果B ==“n”,我想添加新列C,那么它将具有A列相应行的值,直到我们在B列中获得另一个“n”,之后它将具有相应行的值直到下一个“ n"

我需要的数据框是这样的

所需数据框

标签: rdataframe

解决方案


使用 tidyverse 函数,您可以这样做。

library(dplyr)
library(tidyr)

df <- tibble(A = c(2,1,3,4,5,6,1,7,8,9,4),
             B = c("n", "", "", "n", "", "", "n", "n", "", "", ""))

df %>% 
  mutate(C = ifelse(B == "n", A, NA)) %>% 
  fill(C, .direction = "down")

推荐阅读