Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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")) { |