R 如何使用添加的因子名称将宽格式转换为长格式
我想将宽格式数据(示例名称放在列名中)转换为长格式数据(示例名称中添加了一列) 见示例:R 如何使用添加的因子名称将宽格式转换为长格式,r,R,我想将宽格式数据(示例名称放在列名中)转换为长格式数据(示例名称中添加了一列) 见示例: df <-data.frame(Assay=c("alpha","beta","theta"), One_mean =c(3,4,5), Two_mean =c(6,7,8), Three_mean =c(8,8,8),
df <-data.frame(Assay=c("alpha","beta","theta"),
One_mean =c(3,4,5),
Two_mean =c(6,7,8),
Three_mean =c(8,8,8),
One_plus =c(1.3,1.4,1.5),
Two_plus =c(1.6,1.7,1.8),
Three_plus =c(1.8,1.8,1.8),
One_minus =c(.3,.4,.5),
Two_minus =c(.6,.7,.8),
Three_minus =c(.8,.8,.8))
df我们可以使用pivot\u更长的时间
library(tidyr)
pivot_longer(df, cols = -Assay, names_to = c("Sample", ".value"), names_sep = '_')
-输出
# A tibble: 9 x 5
# Assay Sample mean plus minus
# <chr> <chr> <dbl> <dbl> <dbl>
#1 alpha One 3 1.3 0.3
#2 alpha Two 6 1.6 0.6
#3 alpha Three 8 1.8 0.8
#4 beta One 4 1.4 0.4
#5 beta Two 7 1.7 0.7
#6 beta Three 8 1.8 0.8
#7 theta One 5 1.5 0.5
#8 theta Two 8 1.8 0.8
#9 theta Three 8 1.8 0.8
#一个tible:9 x 5
#分析样品平均值加减
#
#1阿尔法一号31.30.3
#2阿尔法2 6 1.6 0.6
#3阿尔法3 81.80.8
#4 beta One 4 1.4 0.4
#5 beta 2 7 1.7 0.7
#6 beta三级8 1.80.8
#7θ1 5 1.5 0.5
#8θ2 81.80.8
#9θ3 81.80.8
我们可以使用pivot\u更长的时间
library(tidyr)
pivot_longer(df, cols = -Assay, names_to = c("Sample", ".value"), names_sep = '_')
-输出
# A tibble: 9 x 5
# Assay Sample mean plus minus
# <chr> <chr> <dbl> <dbl> <dbl>
#1 alpha One 3 1.3 0.3
#2 alpha Two 6 1.6 0.6
#3 alpha Three 8 1.8 0.8
#4 beta One 4 1.4 0.4
#5 beta Two 7 1.7 0.7
#6 beta Three 8 1.8 0.8
#7 theta One 5 1.5 0.5
#8 theta Two 8 1.8 0.8
#9 theta Three 8 1.8 0.8
#一个tible:9 x 5
#分析样品平均值加减
#
#1阿尔法一号31.30.3
#2阿尔法2 6 1.6 0.6
#3阿尔法3 81.80.8
#4 beta One 4 1.4 0.4
#5 beta 2 7 1.7 0.7
#6 beta三级8 1.80.8
#7θ1 5 1.5 0.5
#8θ2 81.80.8
#9θ3 81.80.8
使用reshpae的基本R选项
reshape(
setNames(df, gsub("(\\w+)_(\\w+)", "\\2.\\1", names(df))),
direction = "long",
idvar = "Assay",
varying = -1
)
给予
使用reshpae
reshape(
setNames(df, gsub("(\\w+)_(\\w+)", "\\2.\\1", names(df))),
direction = "long",
idvar = "Assay",
varying = -1
)
给予