【发布时间】:2020-10-16 17:59:18
【问题描述】:
我想根据数据框两列中的信息向我的数据框添加一列。
在我的示例数据框中,我有一个样本的两行条目,分别是第 3 行和第 4 行。我想编写一个新列“main”并在具有唯一标记的每一行中填充“1”的代码数字。对于具有重复标签编号的行,我需要将权重最高的行在 main 中设置为“1”,并将所有其他行填充为“0”。
df
sp weight tag
1 green 70 1
2 yellow 63 2
3 red 41 3
4 red 25 3
5 red 9 3
df with "main" column added
sp weight tag main
1 green 70 1 1
2 yellow 63 2 1
3 red 41 3 1
4 red 25 3 0
5 red 9 3 0
这是我目前所拥有的:
df$is.uniq <- duplicated(df$tag) | duplicated(df$tag), fromLast = TRUE)
df$main <- ifelse(is.uniq==TRUE, "1", ifelse(is.uniq==FALSE, "0", NA ))
我知道我需要更改第二个 ifelse 语句以引用权重列,并为最大权重填写 1,为其他所有内容填写 0,但我还没有弄清楚如何做到这一点。
【问题讨论】:
标签: r if-statement unique