возвращение индекса вектора для совпадения - PullRequest
0 голосов
/ 15 мая 2019

У меня есть фрейм данных с первым столбцом в качестве имени переменных, с которыми я хочу соответствовать. Этот столбец содержит 797 наблюдений и является типом символов. У меня есть другой вектор, который снова является символьным типом и имеет 31 строку. я хочу вернуть индексы столбца фрейма данных (тот, который содержит 787 наблюдений), который совпадает с маленьким векторным символом.

Я попробовал некоторый код, используя цикл for. но не смог получить то, что хотел

vec_list<-vector()

for (i in inter_2004_05[,1]){
  for(j in 1:nrow(test_t)){
   if(inter_2004_05[i,1]=test_t[j]){
    vec_list[i]= i
   }
  }
 }

now `` - вектор слов, которые я хочу сопоставить. Я ожидаю, что мы должны проверить, чтобы у каждого элемента в первом столбце фрейма данных (inter_2004_05[,1]) было какое-либо совпадение в символьном векторе (test_t). Я хочу индекс inter_2004_05[, 1], где он нашел совпадение в test_t

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Это можно сделать, используя% в% и который.

inter_2004_05  = c('A','B','C','D')
test_t = c('C','B')
indices = which(inter_2004_05 %in% test_t)
0 голосов
/ 15 мая 2019

Как уже указывалось в RAB, match вернет индекс, поэтому вы можете сразу использовать эти индексы для поднабора того, что вам нужно. Я только что проверил следующий пример:

#Create 2 vectors
word_vector <- c(paste("test", 1:50, sep=""))
test_vector <- c(paste("test", 10:15, sep=""))

#Find the index of every match
matches <- match(word_vector, test_vector)

#Now matches can be used to subset
word_vector2 <- word_vector[matches > 0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...