对于具有重复项的行,请使用条件值创建新列

时间:2016-10-20 16:03:18

标签: r duplicates matching

一些示例数据:

x <- data.frame(c(1992, 1992, 1992, 1994, 1994, 1995, 1992, 1992, 1993), c("Taliban", "Taliban", "Taliban", "Taliban", "Taliban", "Taliban", "Afghanistan", "Afghanistan", "Afghanistan"), c(300, 300, 300, 100, 100, 250, 25, 25, 60))
colnames(x) <- c("year", "actor", "deaths")
x$year <- as.integer(x$year) # this is to match the class of my actual data

我的目标是使用基于以下条件的值创建和填充新列“even_deaths”:如果年份和演员匹配的行多于一行,那么“even_deaths”将是“死亡”分开的数量按重复行数。

简而言之,我希望新数据框看起来像这样:

year          actor          deaths          even_deaths
1992          Taliban        300             100
1992          Taliban        300             100
1992          Taliban        300             100
1994          Taliban        100             50
1994          Taliban        100             50
1995          Taliban        250             250
1992          Afghanistan    25              12.5
1992          Afghanistan    25              12.5
1993          Afghanistan    60              60

数据集特别大,有超过1k的演员,所以我希望不需要指定每个人。另外,理想情况下,我只能对具有重复行的行执行任何操作(而不仅仅是重复行和唯一行)。非常感谢任何帮助,如果措辞含糊不清,我会道歉。

干杯,

Ardeshir

1 个答案:

答案 0 :(得分:1)

您可以使用table tr + tr + tr + tr td:nth-child(2) { background-color: red; } 函数base R

ave