在R中使用多个度量变量和类别融化anova形数据集
我知道这个问题可能已经被问过了,但我找不到在多个测量变量存在的情况下我所面临的具体问题的实例。 我有一个这样的数据表在R中使用多个度量变量和类别融化anova形数据集,r,data.table,melt,R,Data.table,Melt,我知道这个问题可能已经被问过了,但我找不到在多个测量变量存在的情况下我所面临的具体问题的实例。 我有一个这样的数据表 library(data.table) set.seed(234) DT<-data.table(item=1:3,phase=c("pre-test","test","follow up"), control_RT=sample(400:600,3),control_ecc=sample(100:200,3),
library(data.table)
set.seed(234)
DT<-data.table(item=1:3,phase=c("pre-test","test","follow up"),
control_RT=sample(400:600,3),control_ecc=sample(100:200,3),
oa_RT=sample(500:700,3),oa_ecc=sample(200:250,3),ya_RT=sample(450:550,3),ya_ecc=sample(230:260,3))
我尝试使用variable
函数来重塑,但没有成功。有什么建议吗?你可以用它
library(tidyr)
DT%>%
聚集(“键”、“值”、-项、-阶段)%>%
单独(键,c(“类别”,“键”))%>%
排列(键、值)
#>项目阶段类别ecc RT
#>1 1试验前控制178 549
#>2 1试验前oa 214 686
#>3 1预测试ya 243 508
#>4.2试验控制106 556
#>5.2测试oa 227 643
#>6 2测试ya 239 550
#>7 3跟进控制163 403
#>8 3跟进oa 226 684
#>9 3跟进ya 251 450
由于它是一个数据表
,我们可以有效地使用数据表
方法
library(data.table)
dcast(melt(DT, id.var = c('item', 'phase'))[, c('Category', 'key') :=
tstrsplit(variable, '_')], item + phase + Category ~key, value.var = 'value')
# item phase Category RT ecc
#1: 1 pre-test control 549 178
#2: 1 pre-test oa 686 214
#3: 1 pre-test ya 508 243
#4: 2 test control 556 106
#5: 2 test oa 643 227
#6: 2 test ya 550 239
#7: 3 follow up control 403 163
#8: 3 follow up oa 684 226
#9: 3 follow up ya 450 251
看一看tidyr函数GatherThank,data.table中是否有类似的函数?我不知道-我从来没有使用过data.table,对不起,非常感谢,一如既往!
library(data.table)
dcast(melt(DT, id.var = c('item', 'phase'))[, c('Category', 'key') :=
tstrsplit(variable, '_')], item + phase + Category ~key, value.var = 'value')
# item phase Category RT ecc
#1: 1 pre-test control 549 178
#2: 1 pre-test oa 686 214
#3: 1 pre-test ya 508 243
#4: 2 test control 556 106
#5: 2 test oa 643 227
#6: 2 test ya 550 239
#7: 3 follow up control 403 163
#8: 3 follow up oa 684 226
#9: 3 follow up ya 450 251