检查 A 列的值是否存在于 B 列的同一行或前几行 [英] Check if value of column A is present in the same row or previous rows of column B
本文介绍了检查 A 列的值是否存在于 B 列的同一行或前几行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个数据框:
df <- structure(list(A = 1:5, B = c(1L, 5L, 2L, 3L, 3L)),
class = "data.frame", row.names = c(NA, -5L))
A B
1 1 1
2 2 5
3 3 2
4 4 3
5 5 3
我想得到这个结果:
A B Result
1 1 1 B
2 2 5 <NA>
3 3 2 <NA>
4 4 3 <NA>
5 5 3 B
策略:
- 检查是否
A==B
然后将B
分配给新列Result
,如果不是NA
.立> - 但也要对
B
的所有 PREVIOUS 行执行此操作.
- Check if
A==B
then assignB
to new columnResult
if notNA
. - But do this also for all PREVIOUS rows of
B
.
目标:
我想学习如何检查列 A
的某个值是否在第 5 行说位于 B
列的前几行(例如第 1-4 行).
I want to learn how to check if a certain value of column A
say in row 5
is in the previous rows of column B
(eg. row 1-4).
推荐答案
我希望下面的代码适合你的一般情况
I hope the following code fits your general cases
transform(
df,
Result = replace(rep(NA, length(B)), match(A, B) <= seq_along(A), "B")
)
给出
A B Result
1 1 1 B
2 2 5 <NA>
3 3 2 <NA>
4 4 3 <NA>
5 5 3 B
这篇关于检查 A 列的值是否存在于 B 列的同一行或前几行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文