(Язык R) как выполнить поиск и записать некоторые строки, если у меня есть индексный файл?

#r

#r

Вопрос:

У меня есть индексный файл, скажем, список. Я называю его «t». У меня также есть таблица с именем «b».

Я хочу выполнить поиск и записать все строки, если индекс совпадает с первой записью строки в b. Я создал этот код, но он не работает.

 table <- function(t,b){
    for (i in 1:length(t)) {
        if (t[i] %in% b[1,]) {
            for (j in 1:length(b)) {
                if (t[i] ==b[1,j]) {
                    z[i] = c(b[,j])
                         }
                    }
                     }
                    return z
                      }
}       
  

Спасибо за чтение

Комментарии:

1. Пожалуйста, поделитесь небольшим примером t и b .

2. Просто в качестве дополнительного примечания: будьте осторожны с присвоением имени вашей функции table, потому что стандартная функция с именем table уже существует.

3. резервуар u для рекомендаций по таблице, примером t может быть c (1,5,6,4,12) y b будет cbind((1,2,3,4,5,6,7,8,9,10,11,12), (a, b, c, d, e, f, g, h, i, j, k, l, m) резервуар u для помощи

4. rows_to_select <- который (b $ Var1 %в% t) выдаст вам rowindices всех строк, где Var1 присутствует в t. Не уверен, что это то, что вы хотите архивировать 🙂

Ответ №1:

на самом деле я сделал это самостоятельно, я опустил код. спасибо (сек(q))dq всем! смотрите и

  autoserch <- function(x,y){
znames <- names(y)
x<-as.matrix(x)
y<-as.matrix(y)
m <- length(y[1,])
n <-length(x[,1])
z <- matrix(0,n,m)    
for (i in 1:length(x)){
    if (isTRUE(x[i,1] %in% y[,1])) {
        for(j in 1:length(y[,1])){
            if(isTRUE(x[i,1]==y[j,1])){
                z[i,] <- y[j,] 
                         }
                    }
                       }    
             }   
colnames(z)<-znames
print(z)
write.csv(z, file = "consulta_solicitada.csv")
}