首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将聚合输出转换为宽格式

将聚合输出转换为宽格式
EN

Stack Overflow用户
提问于 2017-06-07 08:39:59
回答 1查看 257关注 0票数 0

我使用函数聚合来创建一个长格式的数据框架,但是同事需要在Excel中使用它。我发现很难转换成宽格式。我需要将列“变量”和“类型”分成几个列,每个列包含成员(额叶、顶叶和枕骨)和(α、β、伽马、三角洲和θ)。

代码语言:javascript
复制
dput(head(aggdata))
structure(list(Time = c(1, 2, 3, 4, 5, 6), Type = structure(c(1L, 
1L, 1L, 1L, 1L, 1L), .Label = c("alpha", "beta", "gamma", "delta", 
"theta"), class = c("ordered", "factor")), Group = structure(c(1L, 
1L, 1L, 1L, 1L, 1L), .Label = c("C", "N"), class = "factor"), 
    variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Frontal", 
    "Parietal", "Occipital"), class = "factor"), Condition = c(1, 
    1, 1, 1, 1, 1), value = c(0.0947259533333333, 0.0489575420666667, 
    0.0686301660666667, 0.0754647909333333, 0.0708219834666667, 
    0.0644100006)), .Names = c("Time", "Type", "Group", "variable", 
"Condition", "value"), row.names = c(NA, 6L), class = "data.frame")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-07 09:15:33

您可能需要检查reshape2包,以及dcast和熔融函数。这里有一个很好的熔融数据集,你想要铸造它。

让我先修改一下你的样本数据,因为它不会给出几个变量来传播。

代码语言:javascript
复制
agg_data <- rbind(agg_data,head(agg_data,1))
agg_data$variable[7] <- "Parietal"
agg_data$value[7] <- 0.0686301660666667
agg_data

# Time  Type Group variable Condition      value
# 1    1 alpha     C  Frontal         1 0.09472595
# 2    2 alpha     C  Frontal         1 0.04895754
# 3    3 alpha     C  Frontal         1 0.06863017
# 4    4 alpha     C  Frontal         1 0.07546479
# 5    5 alpha     C  Frontal         1 0.07082198
# 6    6 alpha     C  Frontal         1 0.06441000
# 7    1 alpha     C Parietal         1 0.06863017

我觉得你想要的是:

代码语言:javascript
复制
dcast(agg_data, Time  + Type + Group + Condition ~  variable)

# Time  Type Group Condition    Frontal   Parietal
# 1    1 alpha     C         1 0.09472595 0.06863017
# 2    2 alpha     C         1 0.04895754         NA
# 3    3 alpha     C         1 0.06863017         NA
# 4    4 alpha     C         1 0.07546479         NA
# 5    5 alpha     C         1 0.07082198         NA
# 6    6 alpha     C         1 0.06441000         NA

在左侧,您将您想要聚合的数据放在其中,在右侧,您将您要扩展的变量放在您要扩展的变量上,您也可以在右侧放置一个变量之和,以便在多个变量上进行扩展,例如:

代码语言:javascript
复制
dcast(agg_data, Time  + Group + Condition ~  variable + Type)

# Time Group Condition Frontal_alpha Parietal_alpha
# 1    1     C         1    0.09472595     0.06863017
# 2    2     C         1    0.04895754             NA
# 3    3     C         1    0.06863017             NA
# 4    4     C         1    0.07546479             NA
# 5    5     C         1    0.07082198             NA
# 6    6     C         1    0.06441000             NA
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44407661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档