我有一个数据框架,代表动物随时间的发展。我有治疗和物种的列,然后有许多列代表天。它看起来像这样:
df <- data.frame (Species = c("sp1", "sp1", "sp2"),
Treatment = c("hot", "cold", "hot"),
Apr1 = c("egg", "egg", "egg"),
Apr2 = c("1", "egg", "1"),
Apr3 = c("2", "egg", "1"),
Apr4 = c("adult", "1", "2"))
我需要创建列,告诉我每个阶段的天数和总发育时间,以便我可以比较不同物种和处理的这些值。我希望 Dataframe 看起来像这样的输出:
Species Treatment Apr1 Apr2 Apr3 Apr4 Egg Instar1 Instar2 DaysToAdult
1 sp1 hot egg 1 2 adult 1 1 1 4
2 sp1 cold egg egg egg 1 3 1 0 NA
3 sp2 hot egg 1 1 2 1 2 1 NA
有没有一个函数可以很容易地从前面的列中提取这些值?我有~15个发展阶段,所以如果需要的话,可以单独创建每个列。
2条答案
按热度按时间tuwxkamq1#
我相信,如果我们事先将data.frame转换为
long
,那么预期的分析可能会更容易执行:ajsxfq5m2#
玩了一会儿,终于到了: