#r
Вопрос:
У меня есть набор данных, состоящий из листьев, которые я взвесил индивидуально в порядке появления всходов (сначала появился через окончательное появление), и я хотел бы объединить эти массы, чтобы у меня была вся масса всех листьев для каждого отдельного растения.
Как бы я добавил их, используя язык программирования R, или что мне нужно будет в Google, чтобы начать разбираться в этом?
structure(list(Tray = c(1, 1, 1, 1, 1, 1), Plant = c(2, 2, 2,
2, 3, 3), Treatment = structure(c(4L, 4L, 4L, 4L, 4L, 4L), .Label = c("2TLH",
"E2TL", "EH", "WL"), class = "factor"), PreSwitch = c("Soil",
"Soil", "Soil", "Soil", "Soil", "Soil"), PostSwitch = c("Soil",
"Soil", "Soil", "Soil", "Soil", "Soil"), Pellet = c(1, 1, 1,
1, 1, 1), Rep = c(1, 1, 1, 1, 1, 1), Date = structure(c(1618963200,
1618963200, 1618963200, 1618963200, 1618963200, 1618963200), tzone = "UTC", class = c("POSIXct",
"POSIXt")), DAP = c(60, 60, 60, 60, 60, 60), Position = c(2,
1, 3, 4, 4, 3), Whorl = structure(c(1L, 1L, 2L, 2L, 2L, 2L), .Label = c("1",
"2", "3", "4", "5"), class = "factor"), PetioleLength = c(1.229,
1.365, 1.713, 1.02, 0, 1.408), BladeLength = c(1.604, 1.755,
2.466, 2.672, 0.267, 2.662), BladeWidth = c(1.023, 1.185, 1.803,
1.805, 0.077, 1.771), BladeArea = c(1.289, 1.634, 3.492, 3.789,
0.016, 3.704), BladePerimeter = c(6.721, 7.812, 11.61, 12.958,
1.019, 14.863), BladeCircularity = c(0.359, 0.336, 0.326, 0.284,
0.196, 0.211), BPR = c(1.30512611879577, 1.28571428571429, 1.43957968476357,
2.61960784313725, NA, 1.890625), Leaf.Mass = c(9, 11, 31, 33,
32, 33), BladeAR = c(1.56793743890518, 1.48101265822785, 1.36772046589018,
1.4803324099723, 3.46753246753247, 1.50310559006211), Subirrigation = c(0,
0, 0, 0, 0, 0), Genotype = c(1, 1, 1, 1, 1, 1), Location = c(0,
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
Комментарии:
1. пожалуйста, поделитесь воспроизводимым образцом вашего набора данных с
dput(head(data))
.2. структура(список(Лоток = c(1, 1, 1, 1, 1, 1), Растение = c(2, 2, 2, 2, 3, 3), Обработка = структура(c(4L, 4L, 4L, 4L, 4L, 4L, 4L), .Метка = c(«2TLH», «E2TL», «EH», «WL»), класс = «фактор»), Предварительный переключатель = c(«Почва», «Почва», «Почва», «Почва», «Почва», «Почва», «Почва»), Постпереключатель = c(«Почва», «Почва», «Почва», «Почва», «Почва», «Почва»), Гранула = c(1, 1, 1, 1, 1, 1), Rep = c(1, 1, 1, 1, 1, 1), «POSIXt»)), DAP = c(60, 60, 60, 60, 60, 60), Позиция = c(2, 1, 3, 4, 4, 3), Завиток = структура(c(1L, 1L, 2L, 2L, 2L, 2L), .Метка = c(«1», «2», «3», «4», «5»), класс = «фактор»), Лист. Масса = c(9, 11, 31, 33, 32, 33),
3. К сожалению, набор данных огромен, и это не позволило бы мне опубликовать набор целиком. Я удалил посторонние вещи, но некоторые жизненно важные вещи (например, местоположение) пришлось исключить из вышеперечисленного.
4. Хорошо, что бы вы хотели здесь рассчитать? Если вы хотите рассчитать параметр для определенной переменной(переменных) для любой группы (например, ответ ниже), просто дайте нам знать.
Ответ №1:
Возможно, я что-то упускаю, но разве это не сумма по заводу?
Одно решение, приведенное ниже, суммирует его для каждого завода в отдельную таблицу с только итоговыми данными, а второе суммирует и добавляет его обратно в основной набор данных за один шаг.
library(tidyverse)
#summary data set
plant_total <- df %>% group_by(Plant) %>% summarize(plant_weight = sum(Leaf.Mass, na.rm= TRUE))
#add plant_weight column to df data set
plant_total <- df %>% group_by(Plant) %>% mutate(plant_weight = sum(Leaf.Mass, na.rm = TRUE))