Извините за всплеск вопроса за вопросом.Я стараюсь изо всех сил искать, но у меня есть трудная задача - придумать очень, очень большую программу, и я все еще плохо знаком с R, поэтому я ценю всю быструю помощь, которую я получил до сих пор.
Поддельный пример для демонстрации проблемы
Gene <- c("A","B","C","A","B","C","A","B","C")
> IntensityValue <- c(1,10,20,3,NA,23,NA,NA,22)
> ProceedTest <- c(2,2,2,2,-1,2,-1,-1,2)
> ExampleData <- list(Gene=Gene, IntensityValue=IntensityValue, ProceedTest=ProceedTest)
> ExampleData <- as.data.frame(ExampleData)
> ExampleData
Gene IntensityValue ProceedTest
A 1 2
B 10 2
C 20 2
A 3 2
B NA -1
C 23 2
A NA -1
B NA -1
C 22 2
ProceedTest - это оценка, которая указывает, должен ли тест продолжаться.Оценка 2 означает, что данные будут учтены, оценка -1 означает, что тест не будет учитывать данные.
Вы заметите, что ген B имеет NA, появляются дважды, а A имеет NA, появляются только один раз.Я хотел бы, чтобы R мог распознать, что для гена B NA появляется дважды.Таким образом, что каждый раз, когда NA появляется дважды для данного гена (B), нулевое значение заменяет NA, а последующее -1 превращается в 2. Я хочу, чтобы R игнорировал NA для A и продолжал выходить из теста Приступитьзначения как есть.
Измененные данные должны выглядеть следующим образом:
Gene IntensityValue ProceedTest
A 1 2
B 10 2
C 20 2
A 3 2
B 0 2
C 23 2
A NA -1
B 0 2
C 22 2
Это может быть невозможно, но если это так, я бы хотел сказать, что если для гена нет NAтогда значение ProceedTest становится -1.
Final Dataset
Gene IntensityValue ProceedTest
A 1 2
B 10 2
C 20 -1
A 3 2
B 0 2
C 23 -1
A NA -1
B 0 2
C 22 -1
В итоге.Ген А имеет только одну НК, поэтому ничего не меняется.Ген B имеет два значения NA, поэтому он получает все 2, и NA становятся нулями в столбце значений интенсивности.Ген C становится -1, потому что он не содержит никакого NA (на самом деле не имеет значения изменять значения интенсивности).
Я надеюсь, что это понятно, я также знаю, что мои другие вопросы были немного проще, поэтому я надеюсь, что этот конкретный вопрос не так прост, когда я должен был провести дополнительные исследования, чтобы найти ответ на мойсобственные.
Заранее спасибо за помощь,
Джо