====== Common: Atomic WTP to ATP ====== Пересчет весовых процентов оксидов на атомные проценты. === Details === ^ Reference | | ^ Input | wtp | ^ Results | atp | * заголовок * краткое описание * статья * ссылка * карточка * подробное описание * код * тест === Source === elements <- read.csv("constants_elements.csv",stringsAsFactors=F); recalc.wtp_at_to_atp <- function (wtp_data, ...) { data <- wtp_data[,grep("_wtp", names(wtp_data))]; data_atp = data.frame(Name=wtp_data$Name); mw <- c(); for (wtnamew in names(data)) { wtname <- gsub('_wtp', "", wtnamew); econst = subset(elements,element==wtname) mw <- c(mw,c(1/econst$weight)); } data_st1 <- data/100; data_st2 <- rowApply('*',data_st1,mw); st2_sum <- rowSums(data_st2); data_st3 <- (data_st2/st2_sum)*100; names(data_st3) <- gsub("_wtp", "_atp", names(data_st3)); data_atp <- cbind(data_atp, data_st3); return(data_atp); } recalc.wtp_at_to_atp.test <- function () { td <- data.frame(Name="test", S_wtp=19.87, Fe_wtp=34.32, Co_wtp=0.17, Ni_wtp=0.16, As_wtp=45.29, Sb_wtp=0.37); td <- rbind(td,td) rs <- recalc.wtp_at_to_atp(td); expect_equal(object = rs$As_atp[1], 32.72, tolerance = 0.01); expect_equal(object = rs$As_atp[2], 32.72, tolerance = 0.01); } {{tag> order11}}