小编Jar*_*ale的帖子

R:重复值,直到新值按组出现为止,只有第一个非NA值出现一次

我希望重复输入值,直到按组显示新值。我有一阵子的功能是在网上找到的,几乎可以满足我的需求,但不完全是。这是该函数:

    repeat.before <- function(x) {
  ind <- which(!is.na(x))
  ind_rep <- ind
  if (is.na(x[1])) {
    ind_rep <- c(min(ind), ind)
    ind <- c(1, ind)
  }
  rep(x[ind_rep], times = diff(c(ind, length(x) + 1)))
}
Run Code Online (Sandbox Code Playgroud)

此功能将按组成功重复该值,直到出现新值。问题是,如果该列以NA开头,则在第一个值之前存在的以下行将最终采用该第一个值,而不是剩余的NA。我将通过以下示例说明我的意思:

    group    location 
    A        NA
    A        NA
    A        New York
    A        NA
    A        NA
    B        Chicago
    B        NA
    B        Philly
    B        NA
Run Code Online (Sandbox Code Playgroud)

上面的代码将输出以下内容:

    group    location 
    A        New York
    A        New York
    A        New York
    A        New York
    A        New York
    B        Chicago
    B        Chicago
    B        Philly
    B        Philly
Run Code Online (Sandbox Code Playgroud)

同样,它与我要寻找的非常接近,但不完全相同。这是我正在寻找的输出: …

grouping text r function repeat

3
推荐指数
1
解决办法
211
查看次数

标签 统计

function ×1

grouping ×1

r ×1

repeat ×1

text ×1