r - 将R中的某些行拆分为多行?
问题描述
有没有办法把这些数据...
Month Animal Number CodeName
8-9 cat 2 whiskers
3-4 cat|dog 1|4 whiskers|spot
10-11 elephant 5 trunks
7-8 cat|snake 3|2 whiskers|thomas
5-6 elephant|dog 0|7 trunks|spot
在这...
Month Animal Number CodeName
8-9 cat 2 whiskers
3-4 cat 1 whiskers
3-4 dog 4 spot
10-11 elephant 5 trunks
7-8 cat 3 whiskers
7-8 snake 2 thomas
5-6 elephant 0 trunks
5-6 dog 7 spot
通过打破管道?
我将保持 Month 列相同,但 Animal、Number 和 CodeName 管道列将被拆分。
我为此尝试的最后一个代码是......
df %>% 分离行(。,动物,数字,代号,转换 = TRUE)
但我收到“长度不兼容”的错误。
任何帮助将不胜感激
解决方案
您可以使用separate_rows
from tidyr
,但您必须正确地将sep
参数指定为sep = "\\|"
。请注意,您必须转义|
,因为在正则表达式中它是一个特殊字符:
df <- read.table(text = "Month Animal Number CodeName
8-9 cat 2 whiskers
3-4 cat|dog 1|4 whiskers|spot
10-11 elephant 5 trunks
7-8 cat|snake 3|2 whiskers|thomas
5-6 elephant|dog 0|7 trunks|spot", header = TRUE, stringsAsFactors = FALSE)
library(dplyr)
library(tidyr)
df %>% separate_rows(Animal, Number, CodeName, sep = "\\|")
Month Animal Number CodeName
1 8-9 cat 2 whiskers
2 3-4 cat 1 whiskers
3 3-4 dog 4 spot
4 10-11 elephant 5 trunks
5 7-8 cat 3 whiskers
6 7-8 snake 2 thomas
7 5-6 elephant 0 trunks
8 5-6 dog 7 spot
推荐阅读
- ssl - 版本更新、TLS、SSL 后,Curl 调用停止工作?
- javascript - 向测验 api 发出获取请求时出错
- android - FAILURE:通过“flutter build appbundle”命令构建项目时构建失败并出现异常
- azure - 我没有在 azure redis 控制台上进行会话
- asp.net - SignalR 的 messageId 值
- javascript - 当表单使用 React 具有所有值时,无法重新启用提交按钮
- javascript - fireEvent.click 在进行反应测试时不会对状态进行任何更改
- powerbi - 到数据点之间的增量变化
- shell - 如何从slave连接到redis中的master
- dependency-injection - 将自定义提供者的配置参数传递给模块