如何解决根据行关系值在 R 中拆分数据 数据
我的数据框具有以下结构:
起始值 | 中间值 | 最终价值 | 关系 |
---|---|---|---|
A | B | C | 降低,降低 |
A | D,E | C | 降低,提高,提高 |
我正在尝试格式化数据,以便我最终得到:
起始值 | 关系 | 最终价值 |
---|---|---|
A | 降低 | B |
B | 降低 | C |
A | 降低 | D |
D | 加注 | E |
E | 加注 | C |
我一直在努力像这样格式化我的数据。起初我尝试了 tidyr separator_rows() 和某种形式的 reshape2 和 data.table 融合数据,但无济于事。有什么建议吗?
解决方法
我们可以unite
列然后用separate_rows
分割列
library(dplyr)
library(tidyr)
df1 %>%
unite(StartValue,StartValue,MiddleValue,sep=",",remove = FALSE) %>%
unite(FinalValue,FinalValue,") %>%
separate_rows(c(StartValue,Relationship))
-输出
# A tibble: 5 x 3
# StartValue FinalValue Relationship
# <chr> <chr> <chr>
#1 A B lowers
#2 B C lowers
#3 A D lowers
#4 D E raises
#5 E C raises
数据
df1 <- structure(list(StartValue = c("A","A"),MiddleValue = c("B","D,E"),FinalValue = c("C","C"),Relationship = c("lowers,lowers","lowers,raises,raises")),class = "data.frame",row.names = c(NA,-2L))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。