我之前询问了列式替换,但在用NA替换行式值时得到了错误。我在R中有下面的'test' Dataframe ,其中有几行二进制值(0,1)。我想在每一行中找到1的第一个发生率,并将所有后续值替换为NA。
> [,1] [,2] [,3] [,4] [,5] [,6] [,7]
> [1,] 0 0 0 0 0 0 0
> [2,] 1 1 1 0 0 1 1
> [3,] 0 1 0 0 0 0 0
测试应变为:
> [,1] [,2] [,3] [,4] [,5] [,6] [,7]
> [1,] 0 0 0 0 0 0 0
> [2,] 1 NA NA NA NA NA NA
> [3,] 0 1 NA NA NA NA NA
在其他文章中,我尝试包含rowwise()和mutate(),我包含了c_across(),但得到了以下代码的错误:
> test %>% rowwise() %>%
> mutate(c_across(everything(), \(x) replace(x, cummax(x) & cummax(lag(x, default = 0)), NA)))
再次感谢你的帮助。
1条答案
按热度按时间xvw2m8pv1#
首先需要一个要处理的对象:
需要转置否则看起来像是自文档化代码的代码,因为
apply
将行应用的值作为列返回。