首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我试图找出一种方法,从R中有序列的值中创建多列

我试图找出一种方法,从R中有序列的值中创建多列
EN

Stack Overflow用户
提问于 2022-07-16 03:33:45
回答 1查看 37关注 0票数 -1

例如,我想将"1-5“拆分为"1,2,3,4,5”,但在自己的列中有值。

代码语言:javascript
运行
复制
| patient | Tooth |
|---------| ------|
|qw| 1-5|
|lo| 4-5|
|wq| 15|
|fg| 16:24|

我想要的桌子

代码语言:javascript
运行
复制
| patient | Tooth | Col1| Col2|
|---------| ------| ----| ----|
|qw| 1-5| 1 |2|
|lo| 4-5| 4 | 5|
|wq| 15| 15 | 
|fg| 16:24| 16 | 17
EN

回答 1

Stack Overflow用户

发布于 2022-07-16 04:15:26

我用gsub将"1-5“转换为"1:5”,后者可以作为R法律序列进行评估。然后将其作为数据框架(如Tooth 2)中的已编译列添加进来,并将其分隔为带有dplyr::分离的列。

代码语言:javascript
运行
复制
df <- read.table(text="patient  Tooth
qw  1-5
lo  4-5
wq  15
fg  16:24", header=TRUE)

df$Tooth <- gsub("-", ":", df$Tooth)
df$Tooth2 <- sapply(df$Tooth, function(x) paste(eval(parse(text=x)), collapse="_"))

library(dplyr)
df %>% separate(Tooth2, into=paste0("Col", 1:9), sep="_")

  patient Tooth Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9
1      qw   1:5    1    2    3    4    5 <NA> <NA> <NA> <NA>
2      lo   4:5    4    5 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
3      wq    15   15 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
4      fg 16:24   16   17   18   19   20   21   22   23   24
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73001326

复制
相关文章

相似问题

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