如何解决一个漫长而广泛的问题或其他问题
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中的每个值。某事看起来像这样:
我很困惑。如果我需要使用重塑来使其变长,则需要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 举报,一经查实,本站将立刻删除。