2017-02-10 15 views
0

Как заставить команду row_to_keep работать с переменной b вместо использования имени реальной переменной. Спасибо за вашу помощьиспользовать значение для поиска столбца в r

> names(newdata) 
    [1] "Jahr"  "Forstzone" "value,," 
    > variablennameliste<-list("Year","year","Jahr","jahr") 
    > b<-toString(intersect(names(newdata),variablennameliste)) 
    > print(b) 
    [1] "Jahr" 
    >row_to_keep = which(newdata$b!=2014) 
    Warning message: 
    Unknown column 'b' 

Я попробовал команду

assign()  

, но это не сработало

+0

@Henrik. Я не обманываю вопрос о том, что bcz кода OP содержит некоторые элементы, которые не синхронизируются или не отвечают в этот обман – akrun

ответ

0

Нам нужно использовать [ для извлечения значения в объекте «б»

which(newdata[,b]!=2014) 

Обертка toString не требуется, так как она преобразуется в сингл e, разделенных разделителем ,, когда имеется несколько элементов intersect. В этом примере имеется только один элемент.

b <- intersect(names(newdata),variablennameliste) 

Даже при наличии нескольких элементов intersect ING, выше должны работать, как мы выбираем «NewData» столбцы, основанные на «B» вектора. В этом случае сравнение !=2014 зависит от того, какие значения имеют значения столбцов и цели