根据其他两个列的值更改R中的列的值

LDT

我正在尝试根据其他两列的值更改一列的值。到目前为止,这让我有些头疼,而且我不确定是否可能。

我的数据集看起来像这样。一栏是时间,其他两栏反映了后代的父母关系。在奇怪的情况下,例如在时间点1,我有了后代“ D”,它在数据集中首次弹出,并且在上一个时间点还没有出现过,可以同时充当后代和父亲时间。

数据

structure(list(time = c(0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L), 
    offspring = c("A", "B", "C", "A", "D", "E", "A", "F", "G"
    ), parent = c(NA, NA, NA, "A", "B", "D", "A", "A", "F")), class = "data.frame", row.names = c(NA, 
-9L))

我想要帮助的是

  1. 查找一个时间点中存在的所有后代,而不是上一个时间点(不考虑时间点0),并像D和F一样充当后代和父亲

  2. 当我找到它们时,我想将一个准确的时间点减少0.5

time  offspring  parent
 0       A        NA
 0       B        NA
 0       C        NA
 1       A        A
 0.5     D        B 
 1       E        D
 2       A        A
 1.5     F        A
 2       G        F

在这个问题上的任何帮助或指导,将不胜感激。

丹尼尔加

如果需要,在data.table中:

library(data.table)

DT <- data.table(time = c(0,0,0,1,1,1,2,2,2),
                 offspring = c('A', 'B', 'C', 'A', 'D', 'E', 'A', 'F', 'G'),
                 parent = c(NA, NA, NA, 'A', 'B', 'D', 'A', 'A', 'F'))

for (i in seq_len(nrow(DT))) {
  DT[i, time := fifelse(time != 0 & offspring %chin% DT[, parent] & !(offspring %chin% DT[seq_len(i-1), offspring]),
                        time - 0.5,
                        time)]
}

> DT
   time offspring parent
1:  0.0         A   <NA>
2:  0.0         B   <NA>
3:  0.0         C   <NA>
4:  1.0         A      A
5:  0.5         D      B
6:  1.0         E      D
7:  2.0         A      A
8:  1.5         F      A
9:  2.0         G      F

与dplyr:

library(dplyr)
library(tibble)

tbl <- tibble(time = c(0,0,0,1,1,1,2,2,2),
              offspring = c('A', 'B', 'C', 'A', 'D', 'E', 'A', 'F', 'G'),
              parent = c(NA, NA, NA, 'A', 'B', 'D', 'A', 'A', 'F'))

for (i in seq_len(nrow(tbl))) {
  tbl[i,][['time']] <- tbl[i, ] %>% mutate(time = if_else(time != 0 &
                                         offspring %in% tbl[['parent']] &
                                         !(offspring %in% tbl[seq_len(i-1),][['offspring']]),
                                       time - 0.5,
                                       time)) %>% pull(time)
}

> tbl
# A tibble: 9 x 3
   time offspring parent
  <dbl> <chr>     <chr> 
1   0   A         NA    
2   0   B         NA    
3   0   C         NA    
4   1   A         A     
5   0.5 D         B     
6   1   E         D     
7   2   A         A     
8   1.5 F         A     
9   2   G         F   

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据R中其他两个列的值组合更改列值?

来自分类Dev

根据R中其他两个列的比较生成新的列值

来自分类Dev

根据df中其他两个列的比较设置列值

来自分类Dev

如何根据R中其他列中的值更改更改列元素

来自分类常见问题

根据其他两个列Dataframe计算Columne中的值

来自分类Dev

根据其他两个列Dataframe计算Columne中的值

来自分类Dev

如何根据数据框中的其他列值更改列值?

来自分类Dev

SQL-根据相同组和不同行中的其他列值更改列值

来自分类Dev

提取与R中其他列匹配的两个不同列中的值

来自分类Dev

根据其他两个列值对行进行计数,并在R中通过这些列值之一循环操作该值

来自分类Dev

根据两个表的相同值更新列值

来自分类Dev

使用mutate()和cross()根据其他列中的值更改几列的值

来自分类Dev

在与python中的其他两个列绑定的两列中添加值(重复的值)

来自分类Dev

根据不同表中的另一个列值更新表中的两个列值

来自分类Dev

将列中的唯一值更改为两个特定值之一

来自分类Dev

根据熊猫中其他两个列的比较将列设置为true / false?

来自分类Dev

相对于其他两个列值替换列中的值

来自分类Dev

R中的data.table:匹配其他两个列的值后,用同一列中的值替换一个列值

来自分类Dev

如何根据R中其他两列的分组来标准化列中的值?

来自分类Dev

根据其他列中的值更改DataGridTextColumn单元格上的字符串格式,并使值可排序

来自分类Dev

根据其他两列中的条件在R中创建一个新列

来自分类Dev

R编码如何添加一列并根据其他两列中的值填充它

来自分类Dev

根据R中两个数据框的两列中的匹配对名称,将值添加到另一个数据框的其他值中

来自分类Dev

根据Spark中的其他列值更新列中的值

来自分类Dev

Excel宏基于行中其他两个列的值写入值

来自分类Dev

根据其他键值更改json对象中的值

来自分类Dev

根据其他列R中的不同值创建一个新列R

来自分类Dev

如何根据r中的其他值更改数据框中的值?

来自分类Dev

合并R中的两个列,并考虑其他对应的列?

Related 相关文章

  1. 1

    如何根据R中其他两个列的值组合更改列值?

  2. 2

    根据R中其他两个列的比较生成新的列值

  3. 3

    根据df中其他两个列的比较设置列值

  4. 4

    如何根据R中其他列中的值更改更改列元素

  5. 5

    根据其他两个列Dataframe计算Columne中的值

  6. 6

    根据其他两个列Dataframe计算Columne中的值

  7. 7

    如何根据数据框中的其他列值更改列值?

  8. 8

    SQL-根据相同组和不同行中的其他列值更改列值

  9. 9

    提取与R中其他列匹配的两个不同列中的值

  10. 10

    根据其他两个列值对行进行计数,并在R中通过这些列值之一循环操作该值

  11. 11

    根据两个表的相同值更新列值

  12. 12

    使用mutate()和cross()根据其他列中的值更改几列的值

  13. 13

    在与python中的其他两个列绑定的两列中添加值(重复的值)

  14. 14

    根据不同表中的另一个列值更新表中的两个列值

  15. 15

    将列中的唯一值更改为两个特定值之一

  16. 16

    根据熊猫中其他两个列的比较将列设置为true / false?

  17. 17

    相对于其他两个列值替换列中的值

  18. 18

    R中的data.table:匹配其他两个列的值后,用同一列中的值替换一个列值

  19. 19

    如何根据R中其他两列的分组来标准化列中的值?

  20. 20

    根据其他列中的值更改DataGridTextColumn单元格上的字符串格式,并使值可排序

  21. 21

    根据其他两列中的条件在R中创建一个新列

  22. 22

    R编码如何添加一列并根据其他两列中的值填充它

  23. 23

    根据R中两个数据框的两列中的匹配对名称,将值添加到另一个数据框的其他值中

  24. 24

    根据Spark中的其他列值更新列中的值

  25. 25

    Excel宏基于行中其他两个列的值写入值

  26. 26

    根据其他键值更改json对象中的值

  27. 27

    根据其他列R中的不同值创建一个新列R

  28. 28

    如何根据r中的其他值更改数据框中的值?

  29. 29

    合并R中的两个列,并考虑其他对应的列?

热门标签

归档