r - 在 tidyverse 中分离混合值并生成新列
问题描述
我的数据样本如下:
df1 <- read.table(text = "var Time
12O 12
13O 11
22B 45
33Z 22
21L 2
11M 13", header = TRUE)
我想分隔“Var”列中的值以获取以下数据:
df2 <- read.table(text = " Group1 Group2 Group3
1 2 O
1 3 O
2 2 B
3 3 Z
2 1 L
1 1 M", header = TRUE)
我尝试了以下代码:
df2 <- df1 %>% separate(var, into = c('Group1', 'Group2','Group3'), sep = 1)
我得到一个错误。我已经搜索找到错误,但我失败了。
解决方案
如果要保留原始列,可以使用str_split_fixed
fromstringr
包和cbind
结果到现有的dataframe
cbind(df1, str_split_fixed(as.character(df1$var),"", n = 3))
var Time 1 2 3
1 12O 12 1 2 O
2 13O 11 1 3 O
3 22B 45 2 2 B
4 33Z 22 3 3 Z
5 21L 2 2 1 L
6 11M 13 1 1 M
推荐阅读
- rust - Rust 错误代码 E0495 是什么意思?
- python - 在 Python 中安排 Google Cloud Dataflow 作业
- azure-machine-learning-service - 如何使用 Azure 机器学习服务上的新 docker 映像更新现有 Web 服务?
- python-3.x - 连接到 SAP HANA:ConnectionRefusedError:[Errno 111] 连接被拒绝
- sql - PostgreSQL 从 SELECT 分配序列号
- python - pycaffe 获取梯度/权重/偏差
- zeromq - org.zeromq.ZMQException:Errno 48:地址已在使用中
- mysql - 无法创建表
- sql - 分别对正负值求和
- android - Android Room,限制最大数据库大小