Вставить логические условия в R - PullRequest
1 голос
/ 02 декабря 2010

Я переписал мою проблему, чтобы она стала понятнее

Я хочу заменить условие, подобное этому, где var - это переменная в фрейме данных (dataframe $ var) с помощью вставки или другого решения, так как у меня так много значений условий (?) (A, b и c в моем примере) .

subdataframe<-dataframe[var=="a"|var=="b"|var=="c",]

Я попытался составить список (?) Значений условий.

sample<-c("a","b","c")

А затем использовать пасту для создания логического условия

subdataframe<-dataframe[paste("var",sample,sep="==",collapse="|"),]

Но это не работает

Помогите пожалуйста =)

Марк

Ответы [ 2 ]

7 голосов
/ 02 декабря 2010

Удачи (106):

> fortune(106)

If the answer is parse() you should usually rethink the question.
   -- Thomas Lumley
      R-help (February 2005)

Поэтому я бы посоветовал вам переосмыслить то, что вы пытаетесь сделать ...

Я думаю, вы могли бы использовать match или %in% для достижения желаемого результата, но вы не сказали нам, что пытаетесь сделать.

> sample <- c("a","b","c")
> var <- c("a","d","c")
> eval(parse(text=paste("var==",sample,"",sep="'",collapse="|")))
[1]  TRUE FALSE  TRUE
> var %in% sample
[1]  TRUE FALSE  TRUE
1 голос
/ 02 декабря 2010

Джошуа прав в вопросе об использовании разбора.

Тем не менее, вот ответ на ваш вопрос:

 paste("var==\"",sample, "\"",sep="",collapse="|")

Это даст вам желаемую строку, включая кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...