首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于两种条件的data.table分裂列为多列

基于两种条件的data.table分裂列为多列
EN

Stack Overflow用户
提问于 2016-09-07 10:18:34
回答 1查看 445关注 0票数 1

我希望将下面的Y列拆分为基于/-的两列。

代码语言:javascript
运行
复制
df1 <- 
  structure(list(Y = c("1", "2", "3", "4", "5", "6/7", "8-10")), 
            .Names = "Y", row.names = c(NA, -7L)
            , class = "data.frame"
            )
library(data.table)
dt1 <- data.table(df1)
dt1[ , c("Y1", "Y2") := tstrsplit(Y, "/", fixed = TRUE)]
dt1
      Y   Y1 Y2
1:    1    1 NA
2:    2    2 NA
3:    3    3 NA
4:    4    4 NA
5:    5    5 NA
6:  6/7    6  7
7: 8-10 8-10 NA

所需

所需的结果是

代码语言:javascript
运行
复制
      Y   Y1
1:    1    1
2:    2    2
3:    3    3
4:    4    4
5:    5    5
6:  6/7    6
7: 8-10    8

我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-07 10:23:19

您只需选择第一个数字,即

代码语言:javascript
运行
复制
library(data.table)
dt1[, Y1 := as.integer(gsub('[[:punct:]].*', '', Y))]
dt1
#      Y Y1
#1:    1  1
#2:    2  2
#3:    3  3
#4:    4  4
#5:    5  5
#6:  6/7  6
#7: 8-10  8
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39367203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档