2014-10-14 2 views
1

У меня есть таблица в г под названием «Т», который содержит различные данные, как показано ниже:Выбор конкретных строк в г на основе состояния

Tc[1:5,] 
       tFirst    tSecond type 
1 2013-05-21 23:19:56 2013-05-22 13:33:12 2 
2 2013-05-22 13:33:12 2013-05-22 14:29:44 1 
3 2013-05-22 14:29:44 2013-05-22 17:02:18 2 
4 2013-05-22 17:02:18 2013-05-22 17:13:29 1 
5 2013-05-22 17:13:29 2013-05-22 19:42:14 2 

У меня есть другой набор данных в г под названием «ДФ» thta содержит либо ИСТИНА или ЛОЖЬ для одних и тех же строк в Тс, как показано ниже:

Df 
    [1] FALSE TRUE FALSE TRUE TRUE 

Как я могу применить Df в создании новой таблицы с Тс, давайте назовем его newTc, где только строки, связанные с ИСТИНА появляются? Таким образом, ожидаемый результат, используя мои примеры для newTc бы:

newTc 
       tFirst    tSecond type 
2 2013-05-22 13:33:12 2013-05-22 14:29:44 1 
4 2013-05-22 17:02:18 2013-05-22 17:13:29 1 
5 2013-05-22 17:13:29 2013-05-22 19:42:14 2 

Tc и Df содержит около 700 строк, эти примеры являются только частями.

ответ

1

Для подмножества строк Tc для TRUE значений вектора Df, вы можете просто сделать

Tc[Df,] 

Вот как я предполагаю, что ваши данные настройки, основываясь на ваших примерах:

> Tc <- read.table(h=T, text = "tFirst    tSecond type 
    1 '2013-05-21 23:19:56' '2013-05-22 13:33:12' 2 
    2 '2013-05-22 13:33:12' '2013-05-22 14:29:44' 1 
    3 '2013-05-22 14:29:44' '2013-05-22 17:02:18' 2 
    4 '2013-05-22 17:02:18' '2013-05-22 17:13:29' 1 
    5 '2013-05-22 17:13:29' '2013-05-22 19:42:14' 2") 
> Df <- c(FALSE, TRUE, FALSE, TRUE, TRUE) 
> Tc[Df,] 
#    tFirst    tSecond type 
# 2 2013-05-22 13:33:12 2013-05-22 14:29:44 1 
# 4 2013-05-22 17:02:18 2013-05-22 17:13:29 1 
# 5 2013-05-22 17:13:29 2013-05-22 19:42:14 2 
+0

Работает отлично и очень просто! – JC11

1

ваш код будет

newTc <- Tc[which(Df[1,] == TRUE),]  

.

Смежные вопросы