Как исправить присвоение имени новому столбцу на основе другого столбца в моем фрейме данных - PullRequest
0 голосов
/ 12 февраля 2019

Мой код, кажется, работает нормально, но у меня возникают проблемы в дальнейшем анализе, потому что в моем коде есть некоторые скрытые факторы.Я добавил колонки Microbe и у меня нет проблем там.Но я думаю, что мой столбец Microbe.PR может быть первой частью моей проблемы.

У меня есть данные из теста, который требует добавления столбца разбавления на основе значений в столбце "conc.dil" и добавлениястолбец убийства, основанный на столбце BKA.все это также основано на столбце Microbe.PR.

Мои данные выглядят так:

    SampleID        Date Conc.Dil          BKA Microbe Microbe.PR Dilution Killing
1577   102364  08.12.2018 0.003906 3.175029e+00      EC       ECSK      D12     K12
1578   102364  08.12.2018 0.005859 8.943744e-03      EC       ECSK      D11     K11
1579   102364  08.12.2018 0.007813 6.573652e+00      EC       ECSK      D10     K10
1580   102364  08.12.2018 0.011719 1.833467e+00      EC       ECSK       D9      K9
1581   102364  08.12.2018 0.015625 6.707808e-01      EC       ECSK       D8      K8
1582   102364  08.12.2018 0.023438 1.007692e+02      EC       ECSK       D7      K7

Мой код Microbe.PR выглядит следующим образом:

EC$Microbe.PR <- 
  ifelse (EC$Protocol.File.Name == "KILLER E COLI protocolHC","ECSK",
          ifelse(EC$Protocol.File.Name == "KILLER E COLI protocolUSF", "ECSK",
                 ifelse(EC$Protocol.File.Name == "KILLER E COLI protocol", "ECSK",
                        ifelse(EC$Protocol.File.Name == "E COLI protocol", "EC", 
                               ifelse(EC$Protocol.File.Name == "E COLI protocolUSF", "EC", "EC"))))) 

Когда я запускаю этот код, это мои результаты:

EC$Microbe.PR <- as.factor(EC$Microbe.PR)
> levels(EC$Microbe.PR)
[1] "EC"   "ECSK"

> EC_SK <- subset(EC, EC$Microbe.PR %in% c("ECSK"))
> levels(EC_SK$Microbe.PR)
[1] "EC"   "ECSK"

Когда я делаю уровни с EC_SK, в Microbe.PR не должно быть значений "EC".Когда я делаю резюме по этому вопросу, он говорит, что есть 0 значений для «EC» и 1120 значений для ECSK, что является правильным.

...