У меня симметричный фрейм данных, и я хотел бы выбрать подмножество данных для использования в анализе.Это означает, что нужно выбрать нужные строки и столбцы и поддерживать правильный порядок, чтобы новый фрейм данных оставался симметричным кубом.С примерами данных:
# Example data
Sample <- c('Sample_A', 'Sample_B', 'Sample_C', 'Sample_D', 'Sample_E')
Sample_A <- c(0, 3.16, 1, 1.41, 3)
Sample_B <- c(3.16, 0, 3, 2.83, 1)
Sample_C <- c(1, 3, 0, 1, 2.83)
Sample_D <- c(1.41, 2.83, 1, 0, 2.65)
Sample_E <- c(3, 1, 2.83, 2.65, 0)
df = data.frame(Sample, Sample_A, Sample_B, Sample_C, Sample_D, Sample_E)
df
Затем я отдельно определяю интересующие меня сэмплы, например:
samples_to_use <- c("Sample_B", "Sample_D", "Sample_E")
То, что я хочу получить в итоге, выглядит следующим образом
# Desired output
Sample <- c('Sample_B', 'Sample_D', 'Sample_E')
Sample_B <- c(0, 2.83, 1)
Sample_D <- c(2.83, 0, 2.65)
Sample_E <- c(1, 2.65, 0)
df_2 = data.frame(Sample, Sample_B, Sample_D, Sample_E)
df_2
то есть я выбираю строки и столбцы, которые соответствуют samples_to_use.
Я пробовал отдельно выбирать строки, объединяя df с фреймом data samples_to_use, но это кажется неэффективным, а также оставляет меня с неправильными столбцами, которые недлиннее совпадение строк.Ищете более элегантное решение, спасибо!