我曾经尝试过使用整形查找解决方案,但是我不知道如何将表重新排列为我想要的样子。
我的桌子看起来像这样:
myTable<-data.table("AA-TotalPop-Mean"=c(1), "AA-Fr-Mean"=c(33), "AA-SW-Mean"=c(2),
"AA-TotalPop-Median" = c(11), "AA-Fr-Median"= c(3), "AA-SW-Median" = c(22))
我不知道如何编写R代码以最终显示我的R表,但这是excel表版本的屏幕截图:
答案 0 :(得分:2)
一个选项是melt
中的data.table
,它也可以占用patterns
参数中列的多个measure
library(data.table)
nm1 <- unique(sub('.*-', '', names(myTable)))
melt(myTable, measure = patterns('Total', 'Fr', 'SW'),
value.name = c('AA_TotalPop', 'AA_Fr', 'AA_SW'), variable.name = 'Function')[,
Function := nm1[Function]][]
# Function AA_TotalPop AA_Fr AA_SW
#1: Mean 1 33 2
#2: Median 11 3 22
答案 1 :(得分:0)
tidyr
解决方案是:
library(tidyr)
gather(myTable) %>%
separate(key, into = c('Var', 'Function'), sep="-(?=[^-]+$)") %>%
spread(Var, value)
#> Function AA-Fr AA-SW AA-TotalPop
#> 1 Mean 33 2 1
#> 2 Median 3 22 11