R中的剪切功能替代

williamg15

我有一些数据的形式:

Person.ID    Household.ID    Composition 
   1             4593           1A_0C
   2             4992           2A_1C
   3             9843           1A_1C 
   4             8385           2A_2C  
   5             9823           8A_1C 
   6             3458           1C_9C 
   7             7485           2C_0C 
   :               :              :    

我们可以将组成变量视为成人/儿童的数量,即2A_1C等于两个成人和两个孩子。

我要做的是减少可能的构图量。对于第5个人,我们的组成为8A_1C,我正在寻找一种方法将其减少到4 + A_0C。因此,例如,对于任何大于4A的成分值,我们将有4+。

Person.ID     Household.ID     Composition 
    5             9823            4+A_1C
    6             3458             1A_4+C
    :               :                :

我不确定如何做到这一点的R,我想使用的过滤器()选择()dyplyr否则,我将需要使用某种正则表达式。

任何帮助,将不胜感激。谢谢

布鲁斯·莫兰

数据:

Person.ID <- c(1,2,3,4,5,6,7,8)
Household.ID <- c(4593,4992,9843,8385,9823,3458,7485)
Composition <- c("1A_0C","2A_1C","1A_1C","2A_2C","8A_1C","1A_9C","2A_0C")
dat <- tibble(Person.ID, Household.ID, Composition)

功能:

above4 <- function(f){
    ff <- gsub("[^0-9]","",f)
    if(ff>4){return("4+")}
    if(ff<=4){return(ff)}
}

Apply功能(对分离的数据执行,但之后可以重新组合):

dat_ <- dat %>% tidyr::separate(., col=Composition, 
                           into=c("Adults", "Children"), 
                           sep="_") %>%
        dplyr::mutate(Adults_ = unlist(lapply(Adults,above4)), 
                         Children_ = unlist(lapply(Children,above4)))

然后,您可以使用选择过滤器来获取所需的数据集。

dat_ %>% dplyr::mutate(Composition_ = paste0(Adults_, "A_", Children_, "C")) %>%
         dplyr::select(Person.ID, Household.ID, Composition=Composition_)

 # A tibble: 7 x 3
      Person.ID Household.ID Composition
          <dbl>        <dbl> <chr>
    1        1.        4593. 1A_0C
    2        2.        4992. 2A_1C
    3        3.        9843. 1A_1C
    4        4.        8385. 2A_2C
    5        5.        9823. 4+A_1C
    6        6.        3458. 1A_4+C
    7        7.        7485. 2A_0C

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用R中的剪切功能剪切数据时显示空组

来自分类Dev

在R中为剪切功能添加标签

来自分类Dev

基本R图形中的垂直字母被剪切/剪切

来自分类Dev

避免在R中的剪切功能中使用科学计数法

来自分类Dev

从 WordPress 中的“the_content”功能中剪切文本

来自分类Dev

更改剪切功能中的标签符号样式?

来自分类Dev

剪切功能在Shell脚本中不起作用

来自分类Dev

如何在R中设置不同的中断并剪切数据

来自分类Dev

不使用e格式显示R中的剪切类别

来自分类Dev

剪切功能的多个条件(中断)

来自分类Dev

用JavaScript模拟剪切功能?

来自分类Dev

剪切功能不起作用

来自分类Dev

在matplotlib中剪切注释

来自分类Dev

从列表中剪切列

来自分类Dev

从列表中剪切列

来自分类Dev

从文件中剪切日期

来自分类Dev

从问号中剪切 url

来自分类Dev

在 Canvas 中剪切图像

来自分类Dev

在python中倾斜或剪切图像

来自分类Dev

在WPF中剪切边框

来自分类Dev

在SVG中剪切转换后的文本

来自分类Dev

在VIM中剪切或粘贴整个标签

来自分类Dev

从文件中剪切多余的文本

来自分类Dev

合并ImageMagick中“剪切”的图像?

来自分类Dev

如何从SVG中的形状剪切文本?

来自分类Dev

在Swift 2中剪切数组元素

来自分类Dev

Prolog中的剪切和失败语义

来自分类Dev

SelectDirBrowseLabel中的新行被目录剪切

来自分类Dev

如何从文件中剪切数据?