gpt4 book ai didi

从长到宽 reshape 数据 - 了解 reshape 参数

转载 作者:行者123 更新时间:2023-12-01 07:25:24 27 4
gpt4 key购买 nike

我有一个长格式的数据框狗,我正在尝试使用 reshape() 函数将其重新格式化为宽格式。目前看起来是这样的:

dogid  month  year  trainingtype  home  school  timeincomp
12345 1 2014 1 1 1 340
12345 2 2014 1 1 1 360
31323 12 2015 2 7 3 440
31323 1 2014 1 7 3 500
31323 2 2014 1 7 3 520

dogid 列是一堆 id,每只狗一个。对于 12 个月,月份列从 1 到 12 变化,从 2014 年到 2015 年。Trainingtype 变化为 1 到 2。每只狗都有一个 timeincomp 值,用于每个月-年-trainingtype 组合,因此每只狗有 48 个条目。家和学校从 1 到 8 不等,每只狗都是恒定的(同一只狗的每个条目都有相同的学校和家)。 comp 中的时间是我的响应变量。

我希望我的 table 看起来像这样:
dogid  home  school  month1year2014trainingtype1  month2year2014trainingtype1
12345 1 1 340 360
31323 7 3 500 520

等(每个月-年-培训类型组合的列)

我应该在 reshape 中使用哪些参数来实现这一目标?

最佳答案

您可以使用功能dcast来自包裹 reshape2 .更容易理解。公式的左边是长的,右边是变宽的。

fun.aggregate 是在每个案例有超过 1 个数字的情况下应用的函数。如果您确定没有重复案例,可以使用 meansum

dcast(data, formula= dogid + home + school ~ month + year + trainingtype,
value.var = 'timeincomp',
fun.aggregate = sum)

我希望它有效:
  dogid home school 1_2014_1 2_2014_1 12_2015_2
1 12345 1 1 340 360 0
2 31323 7 3 500 520 440

关于从长到宽 reshape 数据 - 了解 reshape 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32237554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com