在数据框中创建新列:组中的索引(组之间不唯一)

xvrtzn

我有一个包含两列的数据框:第一列包含每个个人所属的组,第二列包含个人的ID。见下文:

df <- data.frame( group=c('G1','G1','G1','G1','G2','G2','G2','G2'), 
      indiv=c('indiv1','indiv1','indiv2','indiv2','indiv3',
              'indiv3','indiv4','indiv4'))

   group   indiv
1     G1  indiv1
2     G1  indiv1
3     G1  indiv2
4     G1  indiv2
5     G2  indiv3
6     G2  indiv3
7     G2  indiv4
8     G2  indiv4

我想在数据框中创建一个新列(保留长格式),并使用组中每个人的索引,即:

   group   indiv  Ineed
1     G1  indiv1      1
2     G1  indiv1      1
3     G1  indiv2      2
4     G1  indiv2      2
5     G2  indiv3      1
6     G2  indiv3      1
7     G2  indiv4      2
8     G2  indiv4      2

我尝试使用data.table .N或.GRP方法,但没有成功(顺便说一下,对data.table进行了很好的工作!)。

任何帮助,不胜感激!

大卫·阿伦堡

您可以在rleid此处使用新功能(从开发版本v> = 1.9.5起)

setDT(df)[, Ineed := rleid(indiv), group][]
#    group  indiv Ineed
# 1:    G1 indiv1     1
# 2:    G1 indiv1     1
# 3:    G1 indiv2     2
# 4:    G1 indiv2     2
# 5:    G2 indiv3     1
# 6:    G2 indiv3     1
# 7:    G2 indiv4     2
# 8:    G2 indiv4     2

或者,您可以转换为因子(以创建唯一的组),然后将它们转换回数字(如果使用的是CRAN稳定版本v <= 1.9.4)

setDT(df)[, Ineed := as.numeric(factor(indiv)), group][]
#    group  indiv Ineed
# 1:    G1 indiv1     1
# 2:    G1 indiv1     1
# 3:    G1 indiv2     2
# 4:    G1 indiv2     2
# 5:    G2 indiv3     1
# 6:    G2 indiv3     1
# 7:    G2 indiv4     2
# 8:    G2 indiv4     2

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

给定一组索引,在数据框中的每个索引之间进行汇总

来自分类Dev

在数据框中添加一列,以对组中的出现次数进行索引

来自分类Dev

在数据框中查找唯一的一组行

来自分类Dev

在数据框中查找唯一的一组行

来自分类Dev

在数据框中按多个组标记唯一值

来自分类Dev

熊猫多索引数据框中的组之间的计算

来自分类Dev

熊猫:根据其组内元素的相对索引在多索引数据框中创建列

来自分类Dev

在数据框中按列分组,并为每个组创建单独的csv

来自分类Dev

在列之间进行减法运算以在数据框中创建新列

来自分类Dev

如何在组中查找NA并为数据框创建新列

来自分类Dev

如何基于R中特定列给出的子组创建新的数据框提取方法

来自分类Dev

在R中原始数据框中按组创建均值新列

来自分类Dev

使用一组数据框中的每一列的每个单元格创建最大值的新数据框

来自分类Dev

基于组事件在数据框中生成新列

来自分类Dev

在熊猫数据框中创建组均值列

来自分类Dev

在熊猫数据框中根据条件为组创建列

来自分类Dev

删除列的数字(零)并在数据框中创建一个新列

来自分类Dev

使用 mutate 创建一个新列,它是数据框 (dplyr) 中每一行的一组指定列的内容的函数

来自分类Dev

使用Fuzzywuzzy在数据框中创建新列

来自分类Dev

根据条件在数据框中创建新列

来自分类Dev

如何根据条件在数据框中创建新列

来自分类Dev

以迭代方式在数据框中创建多个新列

来自分类Dev

如何基于另一个数据框中的组在熊猫数据框中创建指标列?

来自分类Dev

在包含排序组的 Pandas 数据框中创建一个计算列

来自分类Dev

Pyspark:在groupby中创建一组值的新列

来自分类Dev

从R中的向量在数据框中设置组名

来自分类Dev

R:在数据框中按组替换数据

来自分类Dev

从数据框中获取唯一ID计数的数量,并为计数和值创建新列

来自分类Dev

如何获取列的唯一组合并在python数据框中按它们排序?

Related 相关文章

  1. 1

    给定一组索引,在数据框中的每个索引之间进行汇总

  2. 2

    在数据框中添加一列,以对组中的出现次数进行索引

  3. 3

    在数据框中查找唯一的一组行

  4. 4

    在数据框中查找唯一的一组行

  5. 5

    在数据框中按多个组标记唯一值

  6. 6

    熊猫多索引数据框中的组之间的计算

  7. 7

    熊猫:根据其组内元素的相对索引在多索引数据框中创建列

  8. 8

    在数据框中按列分组,并为每个组创建单独的csv

  9. 9

    在列之间进行减法运算以在数据框中创建新列

  10. 10

    如何在组中查找NA并为数据框创建新列

  11. 11

    如何基于R中特定列给出的子组创建新的数据框提取方法

  12. 12

    在R中原始数据框中按组创建均值新列

  13. 13

    使用一组数据框中的每一列的每个单元格创建最大值的新数据框

  14. 14

    基于组事件在数据框中生成新列

  15. 15

    在熊猫数据框中创建组均值列

  16. 16

    在熊猫数据框中根据条件为组创建列

  17. 17

    删除列的数字(零)并在数据框中创建一个新列

  18. 18

    使用 mutate 创建一个新列,它是数据框 (dplyr) 中每一行的一组指定列的内容的函数

  19. 19

    使用Fuzzywuzzy在数据框中创建新列

  20. 20

    根据条件在数据框中创建新列

  21. 21

    如何根据条件在数据框中创建新列

  22. 22

    以迭代方式在数据框中创建多个新列

  23. 23

    如何基于另一个数据框中的组在熊猫数据框中创建指标列?

  24. 24

    在包含排序组的 Pandas 数据框中创建一个计算列

  25. 25

    Pyspark:在groupby中创建一组值的新列

  26. 26

    从R中的向量在数据框中设置组名

  27. 27

    R:在数据框中按组替换数据

  28. 28

    从数据框中获取唯一ID计数的数量,并为计数和值创建新列

  29. 29

    如何获取列的唯一组合并在python数据框中按它们排序?

热门标签

归档