R for循环:对于列中具有相同值的所有行组,执行

Jor*_*ner -1 for-loop r nested-loops

我希望能帮助理解在R中进行某个计算所需的语法.

我有这样的数据帧:

a b c
1 1 0
2 1 1
3 1 0
4 2 0
5 2 0
6 3 1
7 3 0
8 3 0
9 4 0
Run Code Online (Sandbox Code Playgroud)

并且我想创建一个值为1的新列"d",如果(且仅当)列"c"中的任何值对于"b" 列中具有相同值的每组行等于1 . 否则(见第4,5和9行)列"d"给出0.

a b c d
1 1 0 1
2 1 1 1
3 1 0 1
4 2 0 0
5 2 0 0
6 3 1 1
7 3 0 1
8 3 0 1
9 4 0 0
Run Code Online (Sandbox Code Playgroud)

这可以用for循环完成吗?如果是这样,任何关于如何写这个的建议都将非常感激.

Ada*_*dam 5

运用 data.table

setDT(df)
df[, d := as.integer(any(c == 1L)), b]
Run Code Online (Sandbox Code Playgroud)