R Извлечение значений из таблицы данных с учетом индексов, хранящихся в другой таблице - PullRequest
0 голосов
/ 03 мая 2018

У меня есть вектор (ndx) и таблица (предсказание_все)

Вектор ndx содержит индексы предсказать все таблицы

ndx выглядит следующим образом:

V1 
1  
4  
5  
6 

Таблица данных прогнозирования: все выглядит следующим образом:

V1   V2   V3   V4   V5   V6
0.01 0    0.2  0.4  0.1  0
0.2  0.01 0.1  0.3  0.6  0.3

[...]

Когда я делаю: predict_all[1,1] Я получаю 0,01, но если я получаю predict_all[1, ndx[1]] Я получаю 1, когда я должен получить 0,01.

просто нужно это исправить.

1 Ответ

0 голосов
/ 03 мая 2018

Нам нужно показать индекс строки / столбца одинаковой длины. Здесь мы пытаемся получить значение ячейки в 1, 1 ,. Индекс строки правильный, но индекс столбца - data.frame с одним столбцом (ndx[1] - на основе структуры, показанной в посте ОП). Нам нужно извлечь столбец 'V1' и получить первый элемент в качестве индекса столбца

predict_all[1, ndx$V1[1]]
#[1] 0.01

ПРИМЕЧАНИЕ: мы принимаем predict_all как data.frame

Если это data.table, тогда используйте with = FALSE

predict_all[1, ndx$V1[1], with = FALSE]
#    V1
#1: 0.01

данные

ndx <- structure(list(V1 = c(1L, 4L, 5L, 6L)), .Names = "V1", 
 class = "data.frame", row.names = c(NA, -4L))

predict_all <- structure(list(V1 = c(0.01, 0.2), V2 = c(0, 0.01), 
 V3 = c(0.2, 0.1), V4 = c(0.4, 0.3), V5 = c(0.1, 0.6), 
 V6 = c(0, 0.3)), .Names = c("V1", 
 "V2", "V3", "V4", "V5", "V6"), class = "data.frame",
 row.names = c(NA, -2L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...