Править страницу Ссылки сюда Common: Compound WTP to ATP Пересчет весовых процентов оксидов на атомные проценты. Details Reference Input wtp Results atp Использовать Проверить заголовок краткое описание статья ссылка карточка подробное описание код тест Source elements <- read.csv("constants_elements.csv",stringsAsFactors=F); oxides <- read.csv("constants_oxides.csv",stringsAsFactors=F); recalc.wtp_comp_to_atp <- function (wtp_data, cat_only = F, ...) { data <- wtp_data[,grep("_wtp", names(wtp_data))]; data_atp = data.frame(Name=wtp_data$Name); cF = rep(0, nrow(data)); cCl = rep(0, nrow(data)); cO = rep(0, nrow(data)); for (wtname in names(data)) { oxname <- gsub('_wtp', "", wtname); oxconst = subset(oxides,oxide==oxname) catconst = subset(elements,element==oxconst$cation) anconst = subset(elements,element==oxconst$anion) ddf = data.frame(data[,wtname]/(catconst$weight*oxconst$cation_count+anconst$weight*oxconst$anion_count)*oxconst$cation_count); names(ddf) <- c(oxconst$cation); data_atp = cbind(data_atp, ddf); anc = data[,wtname]/(catconst$weight*oxconst$cation_count+anconst$weight*oxconst$anion_count)*oxconst$anion_count; if(oxconst$anion=="F") {cF = cF + anc} if(oxconst$anion=="Cl") {cCl = cCl + anc} if(oxconst$anion=="O") {cO = cO + anc} } data_atp$Name <- NULL; data_atp$F <- cF; data_atp$Cl <- cCl; data_atp$O <- cO; data_sum <- rowSums(data_atp)[1]; data_atp_ret <- rowApply('/',data_atp,data_sum)*100; names(data_atp_ret) <- paste0(names(data_atp_ret),'_atp'); return(cbind(Name=wtp_data$Name,data_atp_ret)); } order11 recalc/wtp_comp_to_atp.txt Последние изменения: 2018/11/12 15:08(внешнее изменение) Войти