Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
utilities_tpf [2016/09/16 12:07] admin |
utilities_tpf [2020/02/19 13:27] (текущий) f0ma |
||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| <Code linenums lang-r> | <Code linenums lang-r> | ||
| + | |||
| + | source('utilities.r') | ||
| + | |||
| tpf.elements <- read.csv("constants_elements_tpf.csv",stringsAsFactors=F) | tpf.elements <- read.csv("constants_elements_tpf.csv",stringsAsFactors=F) | ||
| Строка 152: | Строка 155: | ||
| clist <- c(c(cat_ox/cat_cat),c(1,1)); | clist <- c(c(cat_ox/cat_cat),c(1,1)); | ||
| - | s <- rowApply('*',mw,clist); | + | s <- rowSums(rowApply('*',mw,clist)); |
| sfc <- 0.5*(mw$F+mw$Cl); | sfc <- 0.5*(mw$F+mw$Cl); | ||
| Строка 160: | Строка 163: | ||
| tpf.fefe <- function(mw,ll,mm,theta = 0.000001){ | tpf.fefe <- function(mw,ll,mm,theta = 0.000001){ | ||
| + | #Non Vector Operation! Tests requried! | ||
| + | | ||
| os = tpf.sumo(mw) + (mw$F + mw$Cl)/2; | os = tpf.sumo(mw) + (mw$F + mw$Cl)/2; | ||
| - | mw1 <- rowApply('*',mw,ll/os); | + | if (os>theta) { |
| - | + | if( os<ll && mw$Fe > (mm-2*os)) { | |
| - | mw$Fe3 <- mm-2*os; | + | mw$Fe3 <- mm-2*os; |
| - | mw$Fe2 <- mw$Fe - mw$Fe2; | + | mw$Fe2 <- mw$Fe - mw$Fe2; |
| - | + | }else{ | |
| - | ret <- as.data.frame(setNames(replicate(25, numeric(0), simplify = F), names(mw))) | + | mw <- rowApply('*',mw,ll/os); |
| - | + | ||
| - | #Non Vector Operation! Tests requried! | + | |
| - | for(i in 1:nrow(mw)) { | + | |
| - | row <- mw[i,]; | + | |
| - | if( os<ll && row$Fe > (mm-2*os[i])) | + | |
| - | { | + | |
| - | ret <-rbind(ret,row); | + | |
| - | } | + | |
| - | else | + | |
| - | { | + | |
| - | ret <-rbind(ret,mw1[i,]); | + | |
| } | } | ||
| } | } | ||
| - | return(ret); | + | return(mw); |
| } | } | ||
| Строка 194: | Строка 188: | ||
| else { clkm = rbind(clkm,clk); } | else { clkm = rbind(clkm,clk); } | ||
| } | } | ||
| - | return(tpf.unrename(clkm,mw$Name)); | + | |
| + | ds <- tpf.unrename(clkm,mw$Name) | ||
| + | return(cbind(data.frame(Name=mw$Name),selectNames(ds, tpf.elements_rename))); | ||
| } | } | ||
| Строка 211: | Строка 207: | ||
| } | } | ||
| if (mn %in% c("SPR")) { | if (mn %in% c("SPR")) { | ||
| - | # tpf.omesod(mw,10,999); | + | mw <- tpf.omesod(mw,10,999); |
| - | # {form(7);-nelzya, t.k. mw[i] uzhe raschitani, t.e. drugie!} | + | s <- rowSums(mw) - mw$F - mw$Cl; |
| - | # s:=0; | + | s <- ifelse(s != 0, 7/s, 0); |
| - | # for i:=Si to C do s:=s+mw[i]; | + | mw <- rowApply('*',mw,s); |
| - | # if s>0.01e-6 then s:=7/s else s:=0; | + | mw$Fe <- mw$Fe3 + mw$Fe2; |
| - | # for i:=Si to Cl do mw[i]:=s*mw[i]; | + | mw$Fe2 <- mw$Fe; |
| - | # mw[fe]:=mw[fe3]+mw[fe2]; mw[fe2]:=mw[fe]; mw[fe3]:=0; | + | mw$Fe3 <- 0; |
| - | # fefe(mw, 10,20); alal(mw, 3); mw[sum_o]:=sumo; | + | mw <- tpf.fefe(mw, 10,20); |
| + | mw <- tpf.alal(mw, 3); | ||
| + | return(mw); | ||
| } | } | ||
| | | ||
| if (mn %in% c("ILM", "HEM")) { | if (mn %in% c("ILM", "HEM")) { | ||
| - | # tpf.omesod(mw,3,999); | + | mw <- tpf.omesod(mw,3,999); |
| - | # {form(2);} | + | s <- rowSums(mw) - mw$F - mw$Cl; |
| - | # s:=0; | + | s <- ifelse(s != 0, 2/s, 0); |
| - | # for i:=Si to C do s:=s+mw[i]; | + | mw <- rowApply('*',mw,s); |
| - | # if s>0.01e-6 then s:=2/s else s:=0; | + | mw$Al4 <- mw$Al; |
| - | # for i:=Si to Cl do mw[i]:=s*mw[i]; | + | mw$Al6 <- 0; |
| - | # mw[Al4]:=mw[Al]; mw[Al6]:=0; | + | mw$Fe <- mw$Fe3+mw$Fe2; |
| - | # mw[Fe]:=mw[Fe3]+mw[Fe2]; mw[Fe2]:=mw[Fe]; mw[Fe3]:=0; | + | mw$Fe2 <- mw$Fe; |
| - | # fefe(mw, 3,6); mw[sum_o]:=sumo; | + | mw$Fe3 <- 0; |
| + | mw <- tpf.fefe(mw, 3,6); | ||
| + | return(mw); | ||
| } | } | ||
| if (mn %in% c("MAG", "SPL")) { | if (mn %in% c("MAG", "SPL")) { | ||
| - | # tpf.omesod(mw,4,999); | + | mw <- tpf.omesod(mw,4,999); |
| - | # {form(3);} | + | s <- rowSums(mw) - mw$F - mw$Cl; |
| - | # s:=0; | + | s <- ifelse(s != 0, 3/s, 0); |
| - | # for i:=Si to C do s:=s+mw[i]; | + | mw <- rowApply('*',mw,s); |
| - | # if s>0.01e-6 then s:=3/s else s:=0; | + | mw$Al4 <- mw$Al; |
| - | # for i:=Si to Cl do mw[i]:=s*mw[i]; | + | mw$Al6 <- 0; |
| - | # mw[Al4]:=mw[Al]; mw[Al6]:=0; | + | mw$Fe <- mw$Fe3+mw$Fe2; |
| - | # mw[Fe]:=mw[Fe3]+mw[Fe2]; mw[Fe2]:=mw[Fe]; mw[Fe3]:=0; | + | mw$Fe2 <- mw$Fe; |
| - | # fefe(mw, 4,8); mw[sum_o]:=sumo; | + | mw$Fe3 <- 0; |
| + | mw <- tpf.fefe(mw, 4,8); | ||
| + | return(mw); | ||
| } | } | ||
| if (mn %in% c("OPX", "PGT", "CPX")) { | if (mn %in% c("OPX", "PGT", "CPX")) { | ||