У меня есть data.frame
с произвольным количеством столбцов, и мне нужен способ захватить разные столбцы (только одну) из каждой строки. Например, если у меня есть data.frame
вроде этого:Получите разную колонку для каждой строки data.frame
myDF <- data.frame(A=letters[1:5], B=letters[6:10], C=LETTERS[26:22], stringsAsFactors=FALSE)
Я хочу, чтобы захватить буквы а, д, с, W и V.
Если бы это было matrix
было бы легко решить.
myDF[cbind(c(1, 2, 3, 4, 5), c(1, 2, 1, 3, 3))]
Но я должен хранить данные в data.frame
, поскольку данные часто POSIXlt
, и я не нашел способ, чтобы преобразовать data.frame
тех, к matrix
.
У кого-нибудь есть хороший способ сделать это, не зацикливая подряд? У меня много неудачных попыток, с которыми я был бы рад поделиться.
Какую версию R вы используете? Ваш код работает отлично, так как по крайней мере R-2.14.2. Кроме того, в ближайшее время (и уже в R-devel, согласно его файлу NEWS), «Матричная индексация данных с помощью двух столбчатых числовых индексов теперь поддерживается как для замены, так и для извлечения». –
R 2.15.0. Вы правы, код работает так же, как для примера, но не тогда, когда данные «POSIXlt». Возможно, мне следует изменить вопрос, чтобы данные были 'POSIXlt'. – Jared
POSIXlt должен быть преобразован в POSIXct перед выполнением НИЧЕГО. –