r - 在数据框中将列转换为行并将行转换为列
问题描述
您好我想将此数据框(dataInit)转换为另一个(dataFinish),我想要将行转换为列
date <- c('2021-03-14','2021-03-15')
CONG_TCH <- c(5.7,3.5)
CONG_SDCCH <- c(2.3,4.6)
ACC <- c(4.5,10.2)
RET <- c(3.5,2.6)
SER <- c(19.5,56.2)
dataInit <- data.frame(date,CONG_TCH,CONG_SDCCH,ACC,RET,SER)
values <- c('CONG_TCH','CONG_SDCCH','ACC','RET','SER')
Day1 <- c(5.7,2.3,4.5,3.5,19.5)
Day2 <- c(3.5,4.6,10.2,2.6,56.2)
dataFinish <- data.frame(values,Day1 ,Day2)
names(dataFinish)[2]<- '2021-03-14'
names(dataFinish)[3]<- '2021-03-15'
感谢您帮助我是我在 R 中的一项任务
解决方案
重塑数据两次:
library(tidyr)
dataInit %>%
pivot_longer(cols = -date) %>%
pivot_wider(names_from = date, values_from = value)
# name `2021-03-14` `2021-03-15`
# <chr> <dbl> <dbl>
#1 CONG_TCH 5.7 3.5
#2 CONG_SDCCH 2.3 4.6
#3 ACC 4.5 10.2
#4 RET 3.5 2.6
#5 SER 19.5 56.2
或与data.table
:
library(data.table)
dcast(melt(setDT(dataInit),id.vars = 'date'), variable~date, value.var = 'value')
推荐阅读
- f# - F# Xamarin.IOS 删除特定 Nuget 包中断构建
- java - WildFly:jboss-web.xml 未按预期注册 webcontext
- ruby - Ruby 到 Scala 代码翻译
- python - 如何从泊松分布中抽取随机样本?
- r - 大数据框:千个因素的组间“重复”t检验
- ios - 如何在导航栏上获取标题的 X 和 Y 位置
- python - Pydev Eclipse 上的 Tkinter 不起作用
- javascript - 如何处理多个更新的firebase数据库安全规则?
- php - 流明:您的要求无法解决为一组可安装的软件包
- c# - “否”选项在我的 Do While 循环中无法正常工作