微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据行关系值在 R 中拆分数据 数据

如何解决根据行关系值在 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 举报,一经查实,本站将立刻删除。