【发布时间】:2017-05-16 12:31:00
【问题描述】:
age_member<- c(1975, 1980, 1979, 1985, 1993, 1998)
people<- c("male", "female", "male", "female", "male", "children")
dataset <- data.frame(age_member, people)
我的结果:
age_member people
1975 male
1980 female
1979 male
1985 female
1993 male
1998 children
我正在过滤这个序列男性(第一),女性(第二),根据 akrun 的回答 dplyr : filter a sequence of rows (in one column)
我没有保留其他序列,如男性(第一),儿童(第二)
我想要什么:根据年龄差异创建一个新列 (mutate)。
dataset %>%
filter(first(people)=="male", last(people) == "female", n()==2)
预期结果
age_member people ages_diff
1975 male 5
1980 female NA
1979 male 6
1985 female NA
我尝试了什么:
dataset2 <-dataset %>%
mutate(ifelse(first(people)=="male", last(people) == "female",n()==2), last(age)- first(age))
【问题讨论】:
-
没问题,没有那个也可以得到输出,请看下面我的解决方案