根据r中另一列的观测值创建新列

啤酒王

我在此专栏中有一个名为“ encuesta”的df

Orientación prioritaria
<chr>
Gastroenterología clinica;Endoscopia digestiva;Motilidad y Neurogastro
Gastroenterología clinica;Endoscopia digestiva;Motilidad y Neurogastro
Gastroenterología clinica;Endoscopia digestiva;Motilidad y Neurogastro
Gastroenterología clinica;Endoscopia digestiva
Motilidad y Neurogastro
Gastroenterología clinica;Motilidad y Neurogastro

我想根据以“;”分隔的值创建新列 在每一行

我已经尝试过这样的事情,例如:

encuesta$`Gastroenterología clínica` <- encuesta$`Orientación prioritaria` %in% str_detect(encuesta$`Orientación prioritaria`, regex("Gastroenterología"))

它创建了一个新列,Gastroenterología clínica但它对所有观察结果进行了评估,得出FALSE,我不明白为什么。

separate()tidyrtidyverse)中尝试这种方法

library(tidyverse)
#Separate
df2 <- df %>% separate(col = V1,into = c('a','b','c'),sep = ';')

输出:

                          a                       b                       c
1 Gastroenterología clinica    Endoscopia digestiva Motilidad y Neurogastro
2 Gastroenterología clinica    Endoscopia digestiva Motilidad y Neurogastro
3 Gastroenterología clinica    Endoscopia digestiva Motilidad y Neurogastro
4 Gastroenterología clinica    Endoscopia digestiva                    <NA>
5   Motilidad y Neurogastro                    <NA>                    <NA>
6 Gastroenterología clinica Motilidad y Neurogastro                    <NA>

使用了一些数据:

#Data
df <- structure(list(V1 = c("Gastroenterología clinica;Endoscopia digestiva;Motilidad y Neurogastro", 
"Gastroenterología clinica;Endoscopia digestiva;Motilidad y Neurogastro", 
"Gastroenterología clinica;Endoscopia digestiva;Motilidad y Neurogastro", 
"Gastroenterología clinica;Endoscopia digestiva", "Motilidad y Neurogastro", 
"Gastroenterología clinica;Motilidad y Neurogastro")), class = "data.frame", row.names = c(NA, 
-6L))

更新:为了使每个值一个变量在此处,代码:

#Code
df %>% separate_rows(V1,sep=';') %>%
  mutate(V=paste0('V',1:n())) %>%
  pivot_wider(names_from = V,values_from=V1)

输出:

# A tibble: 1 x 14
  V1      V2     V3      V4      V5    V6     V7     V8    V9     V10    V11   V12    V13    V14   
  <chr>   <chr>  <chr>   <chr>   <chr> <chr>  <chr>  <chr> <chr>  <chr>  <chr> <chr>  <chr>  <chr> 
1 Gastro~ Endos~ Motili~ Gastro~ Endo~ Motil~ Gastr~ Endo~ Motil~ Gastr~ Endo~ Motil~ Gastr~ Motil~

更新2:为了每个类都有一个变量,请尝试以下操作:

#Code 2
df %>% mutate(id=1:n()) %>% separate_rows(V1,sep=';') %>%
  #group_by(V1) %>%
  mutate(var=1) %>%
  pivot_wider(names_from = V1,values_from=var) %>%
  replace(is.na(.),0) %>% select(-id)

输出:

# A tibble: 6 x 3
  `Gastroenterología clinica` `Endoscopia digestiva` `Motilidad y Neurogastro`
                        <dbl>                  <dbl>                     <dbl>
1                           1                      1                         1
2                           1                      1                         1
3                           1                      1                         1
4                           1                      1                         0
5                           0                      0                         1
6                           1                      0                         1

如果需要总计,请尝试以下操作:

#Code 3
df %>% mutate(id=1:n()) %>% separate_rows(V1,sep=';') %>%
  #group_by(V1) %>%
  mutate(var=1) %>%
  pivot_wider(names_from = V1,values_from=var) %>% select(-id) %>%
  summarise_all(.funs = sum,na.rm=T)

输出:

# A tibble: 1 x 3
  `Gastroenterología clinica` `Endoscopia digestiva` `Motilidad y Neurogastro`
                        <dbl>                  <dbl>                     <dbl>
1                           5                      4                         5

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一列中的值创建新列

来自分类Dev

根据另一列的值创建新列

来自分类Dev

根据另一列的值创建新列

来自分类Dev

根据R中另一列中的唯一值创建批次的升序值,并批量添加新数据

来自分类Dev

根据条件使用python中另一列的值创建新列

来自分类Dev

是否可以根据值在另一列中更改的时间来创建新列?

来自分类Dev

根据列表中的另一列内容创建新的列值

来自分类Dev

根据熊猫中另一列的值创建新列

来自分类Dev

跟进-根据熊猫中另一列的值创建新列

来自分类Dev

根据另一列中的值的最后两位数字创建新列

来自分类Dev

使用 map() 时出错:根据另一列中的值创建新的 Pandas 列

来自分类Dev

如何根据另一列 SQL 中的值创建具有计数值的新列

来自分类Dev

根据另一列 R 中的条件创建一个新列

来自分类Dev

根据前一列中的值创建新列

来自分类Dev

R根据另一列中的因素创建新列

来自分类Dev

根据R中另一列的值选择列

来自分类Dev

如果一列中的观测值与R中另一列的名称相等,则循环以分配值

来自分类Dev

基于R中的另一列创建新列

来自分类Dev

如何迭代另一列中的嵌套字段以根据另一个值创建新列?

来自分类Dev

R函数根据同一列中的先前值创建新列

来自分类Dev

根据 Pandas 中另一列中相似值的分组创建一个新列

来自分类Dev

根据熊猫中另一列上的值在数据框中创建一个新列

来自分类Dev

根据 R 中另一列中的值设置一列的值

来自分类Dev

Pandas 根据另一列的非空值创建一个新列

来自分类Dev

根据R中另一列的最小值获得一列的对应值

来自分类Dev

根据另一列中的条件将值插入另一列中的新列中

来自分类Dev

根据r中的ID从另一列中的一列中查找值

来自分类Dev

根据另一列的内容在R中创建一个新列[特定情况]

来自分类Dev

根据另一列的值创建索引数最大的新列

Related 相关文章

  1. 1

    根据另一列中的值创建新列

  2. 2

    根据另一列的值创建新列

  3. 3

    根据另一列的值创建新列

  4. 4

    根据R中另一列中的唯一值创建批次的升序值,并批量添加新数据

  5. 5

    根据条件使用python中另一列的值创建新列

  6. 6

    是否可以根据值在另一列中更改的时间来创建新列?

  7. 7

    根据列表中的另一列内容创建新的列值

  8. 8

    根据熊猫中另一列的值创建新列

  9. 9

    跟进-根据熊猫中另一列的值创建新列

  10. 10

    根据另一列中的值的最后两位数字创建新列

  11. 11

    使用 map() 时出错:根据另一列中的值创建新的 Pandas 列

  12. 12

    如何根据另一列 SQL 中的值创建具有计数值的新列

  13. 13

    根据另一列 R 中的条件创建一个新列

  14. 14

    根据前一列中的值创建新列

  15. 15

    R根据另一列中的因素创建新列

  16. 16

    根据R中另一列的值选择列

  17. 17

    如果一列中的观测值与R中另一列的名称相等,则循环以分配值

  18. 18

    基于R中的另一列创建新列

  19. 19

    如何迭代另一列中的嵌套字段以根据另一个值创建新列?

  20. 20

    R函数根据同一列中的先前值创建新列

  21. 21

    根据 Pandas 中另一列中相似值的分组创建一个新列

  22. 22

    根据熊猫中另一列上的值在数据框中创建一个新列

  23. 23

    根据 R 中另一列中的值设置一列的值

  24. 24

    Pandas 根据另一列的非空值创建一个新列

  25. 25

    根据R中另一列的最小值获得一列的对应值

  26. 26

    根据另一列中的条件将值插入另一列中的新列中

  27. 27

    根据r中的ID从另一列中的一列中查找值

  28. 28

    根据另一列的内容在R中创建一个新列[特定情况]

  29. 29

    根据另一列的值创建索引数最大的新列

热门标签

归档