Как установить подкадр данных, используя индексы строк и столбцов, хранящиеся в другом кадре данных? - PullRequest
1 голос
/ 30 апреля 2020

У меня есть фрейм данных с номерами «m_df» и другой логический фрейм данных «pos». Я сохранил координаты (строки и столбцы) значений ИСТИНА в другом фрейме данных ('true_pos') и хотел бы извлечь числа, соответствующие этим координатам, из m_df. Как лучше всего это сделать, пожалуйста?

set.seed(123)
m <- matrix(rnorm(3*4), 3, 4)
m
#>            [,1]       [,2]       [,3]       [,4]
#> [1,] -0.5604756 0.07050839  0.4609162 -0.4456620
#> [2,] -0.2301775 0.12928774 -1.2650612  1.2240818
#> [3,]  1.5587083 1.71506499 -0.6868529  0.3598138

m_df <- as.data.frame(m)

pos <- (m_df < 0.36 & m_df > 0.0)
pos
#>         V1    V2    V3    V4
#> [1,] FALSE  TRUE FALSE FALSE
#> [2,] FALSE  TRUE FALSE FALSE
#> [3,] FALSE FALSE FALSE  TRUE

true_pos <- which(pos==TRUE, arr.ind = TRUE)
true_pos
#>      row col
#> [1,]   1   2
#> [2,]   2   2
#> [3,]   3   4

1 Ответ

2 голосов
/ 30 апреля 2020

Мы можем просто использовать матрицу в качестве индекса строки / столбца для извлечения элементов из 'data.frame' или matrix

m_df[true_pos]

Кроме того, нам не нужно преобразовывать в * Индекс 1005 *. Здесь просто

m_df[pos]

достаточно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...