Я медленно учу себя R, с очень простым фоном в программировании. Производные графики и т. Д. Относительно просты, но сейчас я работаю над небольшим фрагментом кода с целью создания более крупного сценария, делающего обработку коммерческих результатов в лаборатории менее обременительным - они обычно выдаются в довольно дезорганизованных файлах CSV, причем смесь различных единиц концентрации.R - итерация по строкам с операторами if
Итак, я пытаюсь создать блок кода, который повторяется через строки CSV-файла, содержащего четыре заголовка столбца: «Analyte», «Unit», «LOD» и «Concentration». Я намереваюсь мой код, чтобы проверить, какое устройство используется для каждого аналита, и если она мг/л, конвертировать концентрацию в мкг/л для данного анализируемого вещества:
input_file <- read.csv(file="test.csv", header = TRUE,sep = ",")
apply(input_file, 1, function(row) {
if (input_file$Unit == "mg/l"){
input_file$Concentration <- input_file$Concentration*1000
}
}
)
print(input_file)
Когда я запускаю этот код (я используя Rstudio), появляется следующее сообщение об ошибке: In if (input_file$Unit == "mg/l") { : the condition has length > 1 and only the first element will be used
. Я не могу найти решение этого, и мои ограниченные знания программирования жаргона, кажется, мешают этому. Есть идеи? Любые предложения, подсказки или ресурсы будут высоко оценены.
возможно, 'input_file [input_file $ Unit == "мг/л",] $ концентрационного <- input_file [input_file $ Unit ==«мг/l ",] $ Концентрация * 1000'? – SymbolixAU
@Symbolix Мои мысли точно, спасибо за комментарий. –