首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据其他三列在列中获得最高值?

如何根据其他三列在列中获得最高值?
EN

Stack Overflow用户
提问于 2022-01-31 09:21:09
回答 1查看 22关注 0票数 0

目的是通过忽视子女的教育水平,使家庭中的两个伴侣之间获得最高的教育价值。第一列hhid是家庭编号id,第二列是个人id。第三栏relation指的是家庭中个体之间的关系:1指户主,2指伴侣,3指子女。第四栏提到这些人的教育水平。

第五列是我希望得到的使用代码的列。其目的是只注重家庭内最高的教育水平,而只注重父母之间的教育水平。我通常使用pmax获得两列之间的最高值,使用group_by将个人聚集在一个组下,比如一个家庭,但这两个命令在这种情况下似乎行不通。有人能帮忙吗?

代码语言:javascript
复制
 hhid id     relation    education    highest_education
    
  1     1        1         3                 3
  1     2        2         2                 3
  1     3        3         5                 3
  2     4        1         4                 4
  2     5        2         2                 4
  3     6        1         1                 2
  3     7        2         2                 2
  4     8        1         1                 3
  4     9        2         3                 3
  4    10        3         4                 3

以下是数据:

代码语言:javascript
复制
structure(list(hhid = c(1, 1, 1, 2, 2, 3, 3, 4, 4, 4), id = c(1, 
2, 3, 4, 5, 6, 7, 8, 9, 10), relation = c(1, 2, 3, 1, 2, 1, 2, 
1, 2, 3), education = c(3, 2, 5, 4, 2, 1, 2, 1, 3, 4)), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-31 09:26:26

你可以这样做:

代码语言:javascript
复制
library(dplyr)

df %>% 
  group_by(hhid) %>% 
  mutate(highest_education = max(education[relation %in% c(1, 2)])) %>% 
  ungroup()
#> # A tibble: 10 × 5
#>     hhid    id relation education highest_education
#>    <dbl> <dbl>    <dbl>     <dbl>             <dbl>
#>  1     1     1        1         3                 3
#>  2     1     2        2         2                 3
#>  3     1     3        3         5                 3
#>  4     2     4        1         4                 4
#>  5     2     5        2         2                 4
#>  6     3     6        1         1                 2
#>  7     3     7        2         2                 2
#>  8     4     8        1         1                 3
#>  9     4     9        2         3                 3
#> 10     4    10        3         4                 3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70923579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档