如何在data.table的列中选择第一个逗号分隔的值?

缺口

@Jaap对此stackoverflow问题的回答

数据是这样的:

Name                                   Text idx             c_org
1:   John                      Text contains MIT   1               MIT
2: Sussan     some text with Stanford University   2          Stanford
3:   Bill He graduated from Yale, MIT, Stanford.   3 MIT,Yale,Stanford
4:   Bill                              some text   4                  

对于column c_org,如果有多个值(如观察3所示),MIT,Yale,Stanford则将第一个值MIT作为列值。结果应如下所示:

Name                                   Text idx             NewOrg
1:   John                      Text contains MIT   1               MIT
2: Sussan     some text with Stanford University   2          Stanford
3:   Bill He graduated from Yale, MIT, Stanford.   3               MIT
4:   Bill                              some text   4        

(请注意,在该c_org列中,某些字段具有多个值,有些甚至为空。在预期输出中,如果只有一个值,则保留该值;如果有多个,则保留第一个值;如果为空,则保留为空)

我尝试了这个(但失败了):

DT[ , str_split(c_org, ",")[[1]][1]]

我猜很常见的一种数据是在一个字段中有多个值。怎么做呢data.table(或者如果解决方案比更好,则以其他方式data.table

阿克伦

我们可以使用sub匹配模式,,后接一个或多个字符(.*),直到$'c_org'列中字符串的结尾(),然后将其替换为''可以分配输出(:=)以创建列'NewOrg',并将'c_org'分配为NULL。

DT[, NewOrg := sub(',.*$', '', c_org)][,c_org:= NULL]
DT
#     Name                                   Text idx   NewOrg
#1:   John                      Text contains MIT   1      MIT
#2: Sussan     some text with Stanford University   2 Stanford
#3:   Bill He graduated from Yale, MIT, Stanford.   3      MIT
#4:   Bill                              some text   4         

或data.tablev1.9.6+中的另一个选项tstrsplit

DT[, NewOrg := tstrsplit(c_org, ',', fill='')[[1]]][, c_org:= NULL]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在第一行中选择第一个制表符分隔的列?

来自分类Dev

在data.table中分组,并在多个列中选择第一个元素

来自分类Dev

Python pandas:如何从特定列中选择第一个非“无”值?

来自分类Dev

如何在第一个孩子中选择第一个孩子

来自分类Dev

如何在SQL Server存储过程中选择第一个ID的值?

来自分类Dev

如何从电话号码中选择第一个或最后一个值?

来自分类Dev

MySql - 嵌套选择 - 如何从第一个表中选择值?

来自分类Dev

如何在选择列表Angular JS中选择第一个元素?

来自分类Dev

如何在html代码中选择第一个表格的最后一行?

来自分类Dev

如何在硒测试中选择第一个锂元素?

来自分类Dev

CSS:如何在每行中选择第一个<td>元素?

来自分类Dev

如何在SQL Server中选择第一个插入的行?

来自分类Dev

如何在SQL数据库中选择第一个奇数/偶数主键

来自分类Dev

如何在sql中选择第一个非重复数据

来自分类Dev

如何在SQL Server中选择第一个插入的行?

来自分类Dev

如何在特定div内的表中选择第一个TD

来自分类Dev

如何在Excel中选择单元格中的第一个数字?

来自分类Dev

如何在oi-select angularjs中选择第一个选项

来自分类Dev

如何在 cakephp 3.x 中选择第一个收音机

来自分类Dev

如何选择第一个NOT NULL值?

来自分类Dev

如何默认选择第一个值?

来自分类Dev

如何选择第一个值 - SQL Server

来自分类Dev

如何在SQL Server中的分隔符之前获取第一个值

来自分类Dev

MySQL - 如何在表中选择行,其中 id 值位于另一个表的逗号分隔字段中?

来自分类Dev

如何在混合容器中选择班级的第一个孩子/最后一个孩子?

来自分类Dev

一旦使用MVC 4 jQuery和AJAX从第一个下拉列表中选择一个值,如何显示项目表

来自分类Dev

如何根据在第一个下拉菜单中选择的值在第二个下拉菜单中选择一个值?这两个值都来自数据库

来自分类Dev

默认情况下如何在选择框中或下拉菜单中选择第一个选项

来自分类Dev

如何在Excel列表中选择第一个(第二个,...)非空元素?

Related 相关文章

  1. 1

    如何在第一行中选择第一个制表符分隔的列?

  2. 2

    在data.table中分组,并在多个列中选择第一个元素

  3. 3

    Python pandas:如何从特定列中选择第一个非“无”值?

  4. 4

    如何在第一个孩子中选择第一个孩子

  5. 5

    如何在SQL Server存储过程中选择第一个ID的值?

  6. 6

    如何从电话号码中选择第一个或最后一个值?

  7. 7

    MySql - 嵌套选择 - 如何从第一个表中选择值?

  8. 8

    如何在选择列表Angular JS中选择第一个元素?

  9. 9

    如何在html代码中选择第一个表格的最后一行?

  10. 10

    如何在硒测试中选择第一个锂元素?

  11. 11

    CSS:如何在每行中选择第一个<td>元素?

  12. 12

    如何在SQL Server中选择第一个插入的行?

  13. 13

    如何在SQL数据库中选择第一个奇数/偶数主键

  14. 14

    如何在sql中选择第一个非重复数据

  15. 15

    如何在SQL Server中选择第一个插入的行?

  16. 16

    如何在特定div内的表中选择第一个TD

  17. 17

    如何在Excel中选择单元格中的第一个数字?

  18. 18

    如何在oi-select angularjs中选择第一个选项

  19. 19

    如何在 cakephp 3.x 中选择第一个收音机

  20. 20

    如何选择第一个NOT NULL值?

  21. 21

    如何默认选择第一个值?

  22. 22

    如何选择第一个值 - SQL Server

  23. 23

    如何在SQL Server中的分隔符之前获取第一个值

  24. 24

    MySQL - 如何在表中选择行,其中 id 值位于另一个表的逗号分隔字段中?

  25. 25

    如何在混合容器中选择班级的第一个孩子/最后一个孩子?

  26. 26

    一旦使用MVC 4 jQuery和AJAX从第一个下拉列表中选择一个值,如何显示项目表

  27. 27

    如何根据在第一个下拉菜单中选择的值在第二个下拉菜单中选择一个值?这两个值都来自数据库

  28. 28

    默认情况下如何在选择框中或下拉菜单中选择第一个选项

  29. 29

    如何在Excel列表中选择第一个(第二个,...)非空元素?

热门标签

归档