Так как я новичок в l oop в РИ, буду благодарен за вашу помощь с моей проблемой. Предположим, у меня есть такой фрейм данных:
Family <- c('mir-1','mir-1','mir-3','mir-4','mir-4','LET-7', 'LET-7','mir-1','mir-4','LET-7')
Species <- c('hsa','chicken','hsa','hsa','chicken','hsa','hsa','chicken','chicken','hsa')
Tissue <- c('blood','liver','blood','blood','liver','skin','skin','skin','liver','nail')
star <- c('1','4','3','4','12','3','7','4','1','5') #numeric
mature <- c('9','6','8','1','7','3','4','2','8','9') #numeric
df <- data.frame(Family,Species,Tissue,star,mature)
, и мой выход должен выглядеть следующим образом:
Family_ <- c('mir-1','mir-1','mir-3','mir-4','mir-4','LET-7', 'LET-7','mir-1','mir-4','LET-7')
Species_ <- c('hsa','chicken','hsa','hsa','chicken','hsa','hsa','chicken','chicken','hsa')
Tissue_ <- c('blood','liver','blood','blood','liver','skin','skin','skin','liver','nail')
star <- c('1','4','3','4','12','3','7','4','1','5') #numeric
mature <- c('9','6','8','1','7','3','4','2','8','9') #numeric
total_count <- c('10','10','11','5','28','17','17','6','28','14') #numeric
star_total <- c('1','4','3','4','13','10','10','4','13','5') #numeric
mature_total <- c('9','6','8','1','15','7','7','2','15','9') #numeric
df_new <- data.frame(Family_,Species_,Tissue_,star,mature,star_total,mature_total,total_count)
Я хочу, чтобы l oop превысил each family in each tissue in each species
. Таким образом, в основном для каждого семейства в первом столбце, который находится в указанных c тканях и определенных c видах (без удаления дублированных строк) Я хочу вычислить total_count <- sum (mature) + sum (star)
, star_total <- sum (star)
, mature_total <- sum (mature)
* с добавлением одного дополнительного столбца *, называемого rpm_mature
, который можно рассчитать таким образом rpm_mature <- mature_total/total_count*10^6
(этот столбец не включен в мой вывод здесь). Таким образом, для строк, имеющих одинаковое семейство в сходной ткани у похожих видов, расчет для этих дублированных рядов должен быть одинаковым. Может быть, я описал не очень хорошо, но если вы посмотрите на вывод, который может иметь смысл. Спасибо