Править страницу Ссылки сюда Это старая версия документа! Утилиты для упрощения работы с данными rowApply <- function(fun,tbl,vec) data.frame(mapply(fun, tbl, vec, SIMPLIFY = F)); selectNames <- function(tbl,namevec) { rtbl <- tbl; for ( n in namevec ) if (!n %in% names(rtbl)) rtbl[[n]] <- 0.0; for ( n in names(rtbl) ) if (!n %in% namevec) rtbl[[n]] <- NULL; return(rtbl[,namevec]); } occupation_r <- function(row, target_col, target_max, source_cols) { for (c in source_cols) { if(row[[target_col]] >= target_max) break; row[[target_col]] = row[[target_col]] + row[[c]]; if(row[[target_col]] >= target_max) { row[[c]] = row[[target_col]] - target_max; row[[target_col]] = target_max; break } else { row[[c]] = 0.0; } } return (row) } occupation <- function(data, target_col, target_max, source_cols) { v = apply(data, 1, occupation_r, target_col=target_col, target_max=target_max, source_cols=source_cols); return(data.frame(t(v))); } utilities.1453986022.txt.gz Последние изменения: 2018/11/12 15:08(внешнее изменение) Войти