В настоящее время я работаю над фреймом данных с необработанными цифрами c данных в столбцах. Каждый столбец содержит данные для одного параметра (например, данные экспрессии гена гена xyz), в то время как каждая строка содержит тему. Некоторые данные в столбцах обычно распределяются, а некоторые далеки от этого. Я запустил тесты Шапиро, используя команду apply с полем 2 для различных преобразований, а затем выбрал подходящие преобразования, сравнив shapiro.test () $ p.value. Я отправил свой выбор как char в вектор, дав мне вектор NA, log10, sqrt с длиной ncol (DataFrame). Теперь мне интересно, можно ли применить вектор к фрейму данных с помощью функции apply или, если необходимо, для -l oop. Как мне это сделать или есть лучший способ? Я думаю, я мог бы сделать oop операторы if-else, но должны быть более эффективные способы, потому что мой код уже работает медленно.
Спасибо всем!
Обновление: я попробовал код ниже но он дает мне «Ошибка в файле (имя файла,« r »): неверный аргумент« description »»
TransformedExampleDF <- apply(exampleDF, 2 , function(x) eval(parse(paste(transformationVector , "(" , x , ")" , sep = "" ))))
exampleDF <- as.data.frame(matrix(c(1,2,3,4,1,10,100,1000,0.1,0.2,0.3,0.4), ncol=3, nrow = 4))
transformationVector <- c(NA, "log10", NA)