У меня есть датафрейм, похожий на:
Gene.names=c("ESR", "ESR.1", "ESR.2", "ESR.3", "PKB", "PKB.1", "PKB.2", "PKB.3")
mean_0.x = c(3,2,5,9,2,4,6,7)
mean_1.x = c(6,2,5,1,9,1,1,9)
mean_2.x = c(3,2,9,9,6,7,3,3)
mean_0.y = c(1,NA,NA,NA,6,NA,NA,NA)
mean_1.y = c(1,NA,NA,NA,3,NA,NA,NA)
mean_2.y = c(6,NA,NA,NA,4,NA,NA,NA)
df = cbind.data.frame(Gene.names, mean_0.x, mean_1.x, mean_2.x, mean_0.y, mean_1.y, mean_2.y)
Мой желаемый результат:
Gene.names = c("ESR", "ESR.1", "ESR.2", "ESR.3", "PKB", "PKB.1", "PKB.2", "PKB.3")
mean_0_diff = c(3,2,5,9,0.33,0.66,1,1.16)
mean_1_diff = c(6,2,5,1,3,0.33,.0.33,3)
mean_2_diff = c(0.5,0.33,1.5,1.5,1.5,1.75,0.75,0.75)
df_out = cbind.data.frame(Gene.names, mean_0_diff, mean_1_diff, mean_2_diff)
- Мой фрейм данных содержит тысячи строк и> 50 столбцов
- Я хочу разделить соответствующие столбцы, например,
mean_0.x/mean_0.y; mean_1.x/mean_1.y; mean_2.x/mean_2.y;
и т. Д.
- Я хочу переработать значения строк в * .y, чтобы в этом примере значения в mean_0.y использовались 4 раза для mean_0.x. Однако в моем реальном наборе данных такая «переработка» должна происходить любое неизвестное количество раз.