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

一个漫长而广泛的问题或其他问题

如何解决一个漫长而广泛的问题或其他问题

关于长到宽的一个快速问题。我有数据

structure(list(Var.name = c("UPKTMPT","UPKLDT","UPKLTM","UPKSHPYN","UPKND","UPKNDSP","UPKSTDT","UPKVOL","UPKSHPDT","UPKLYN","UPKSPTM","UPKSTTM","UPKSPDT","UPKLSTYN","EXCCYN","EXYN","EXDT","EXSTTM","EXSPTM","EXREAS","EXRSAE2","EXRSOTH","EXDSLVL","EXLOTNO","EXVOLA","EXDOSA","EXHELD","EXHELDSP"),EDCT = c("T568","T568","T492","T492")),row.names = c(NA,28L),class = "data.frame")

我如何获得我的列名作为EDCT中的每个值。某事看起来像这样:

enter image description here

我很困惑。如果我需要使用重塑来使其变长,则需要idvar和timvar,而我没有。我该怎么办?这是一个漫长而广泛的问题吗?

解决方法

您是否正在寻找类似的东西?

df %>%
  tidyr::pivot_wider(names_from = EDCT,values_from = Var.name) %>% 
  tidyr::unnest(cols = everything())
#> # A tibble: 14 x 2
#>    T568     T492    
#>    <chr>    <chr>   
#>  1 UPKTMPT  EXCCYN  
#>  2 UPKLDT   EXYN    
#>  3 UPKLTM   EXDT    
#>  4 UPKSHPYN EXSTTM  
#>  5 UPKND    EXSPTM  
#>  6 UPKNDSP  EXREAS  
#>  7 UPKSTDT  EXRSAE2 
#>  8 UPKVOL   EXRSOTH 
#>  9 UPKSHPDT EXDSLVL 
#> 10 UPKLYN   EXLOTNO 
#> 11 UPKSPTM  EXVOLA  
#> 12 UPKSTTM  EXDOSA  
#> 13 UPKSPDT  EXHELD  
#> 14 UPKLSTYN EXHELDSP

或者,作为底线R中的单线,

as.data.frame(lapply(split(df,df$EDCT),function(x) x$Var.name))
#>        T492     T568
#> 1    EXCCYN  UPKTMPT
#> 2      EXYN   UPKLDT
#> 3      EXDT   UPKLTM
#> 4    EXSTTM UPKSHPYN
#> 5    EXSPTM    UPKND
#> 6    EXREAS  UPKNDSP
#> 7   EXRSAE2  UPKSTDT
#> 8   EXRSOTH   UPKVOL
#> 9   EXDSLVL UPKSHPDT
#> 10  EXLOTNO   UPKLYN
#> 11   EXVOLA  UPKSPTM
#> 12   EXDOSA  UPKSTTM
#> 13   EXHELD  UPKSPDT
#> 14 EXHELDSP UPKLSTYN
,

使用基数R:

newdf = character()
for(i in unique(df$EDCT)){
  newdf = cbind(newdf,df$Var.name[df$EDCT==i])  
}
,

base R中,我们可以使用unstack

unstack(df1,Var.name ~ EDCT)

-输出

#       T492     T568
#1    EXCCYN  UPKTMPT
#2      EXYN   UPKLDT
#3      EXDT   UPKLTM
#4    EXSTTM UPKSHPYN
#5    EXSPTM    UPKND
#6    EXREAS  UPKNDSP
#7   EXRSAE2  UPKSTDT
#8   EXRSOTH   UPKVOL
#9   EXDSLVL UPKSHPDT
#10  EXLOTNO   UPKLYN
#11   EXVOLA  UPKSPTM
#12   EXDOSA  UPKSTTM
#13   EXHELD  UPKSPDT
#14 EXHELDSP UPKLSTYN

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。