The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Version: 0.1.5
Title: X-Engineering or Supporting Functions
Description: Miscellaneous functions used for x-engineering (feature engineering) or for supporting in other packages maintained by 'Shichen Xie'.
Imports: data.table
License: MIT + file LICENSE
URL: https://github.com/ShichenXie/xefun
BugReports: https://github.com/ShichenXie/xefun/issues
Encoding: UTF-8
RoxygenNote: 7.2.3
NeedsCompilation: no
Packaged: 2023-08-09 12:03:30 UTC; shichenxie
Author: Shichen Xie [aut, cre]
Maintainer: Shichen Xie <xie@shichen.name>
Repository: CRAN
Date/Publication: 2023-08-10 13:10:03 UTC

vector to list

Description

Converting a vector to a list with names specified.

Usage

as.list2(x, name = TRUE, ...)

Arguments

x

a vector.

name

specify the names of list. Setting the names of list as x by default.

...

Additional parameters provided in the as.list function.

Examples

as.list2(c('a', 'b'))

as.list2(c('a', 'b'), name = FALSE)

as.list2(c('a', 'b'), name = c('c', 'd'))


rounding of numbers

Description

The ceiling2 is ceiling of numeric values by digits. The floor2 is floor of numeric values by digits.

Usage

ceiling2(x, digits = 1)

floor2(x, digits = 1)

Arguments

x

a numeric vector.

digits

integer indicating the number of significant digits.

Value

ceiling2 rounds the elements in x to the specified number of significant digits that is the smallest number not less than the corresponding elements.

floor2 rounds the elements in x to the specified number of significant digits that is the largest number not greater than the corresponding elements.

Examples

x = c(12345, 54.321)

ceiling2(x)
ceiling2(x, 2)
ceiling2(x, 3)

floor2(x)
floor2(x, 2)
floor2(x, 3)


constant columns

Description

The columns name of a data frame with constant value.

Usage

cols_const(dt)

Arguments

dt

a data frame.

Examples

dt = data.frame(a = sample(0:9, 6), b = sample(letters, 6),
                c = rep(1, 6), d = rep('a', 6))
dt
cols_const(dt)


columns by type

Description

The columns name of a data frame by given data types.

Usage

cols_type(dt, type)

Arguments

dt

a data frame.

type

a string of data types, available values including character, numeric, double, integer, logical, factor, datetime.

Examples

dt = data.frame(a = sample(0:9, 6), b = sample(letters, 6),
                c = Sys.Date()-1:6, d = Sys.time() - 1:6)
dt
# numeric columns
cols_type(dt, 'numeric')
# or
cols_type(dt, 'n')

# numeric and character columns
cols_type(dt, c('character', 'numeric'))
# or
cols_type(dt, c('c', 'n'))

# date time columns
cols_type(dt, 'datetime')


continuous counting

Description

It counts the number of continuous identical values.

Usage

conticnt(x, cnt = FALSE, ...)

Arguments

x

a vector or data frame.

cnt

whether to count the number rows in each continuous groups.

...

ignored

Value

A integer vector indicating the number of continuous identical elements in x.

Examples

# example I
x1 = c(0,0,0, 1,1,1)
conticnt(x1)
conticnt(x1, cnt=TRUE)

x2 = c(1, 2,2, 3,3,3)
conticnt(x2)
conticnt(x2, cnt=TRUE)

x3 = c('c','c','c', 'b','b', 'a')
conticnt(x3)
conticnt(x3, cnt=TRUE)

# example II
dt = data.frame(c1=x1, c2=x2, c3=x3)
conticnt(dt, col=c('c1', 'c2'))
conticnt(dt, col=c('c1', 'c2'), cnt = TRUE)


start/end date by period

Description

The date of bop (beginning of period) or eop (end of period).

Usage

date_bop(freq, x, workday = FALSE)

date_eop(freq, x, workday = FALSE)

Arguments

freq

the frequency of period. It supports weekly, monthly, quarterly and yearly.

x

a date

workday

logical, whether to return the latest workday

Value

date_bop returns the beginning date of period of corresponding x by frequency.

date_eop returns the end date of period of corresponding x by frequency.

Examples

date_bop('weekly', Sys.Date())
date_eop('weekly', Sys.Date())

date_bop('monthly', Sys.Date())
date_eop('monthly', Sys.Date())


start date by range

Description

The date before a specified date by date_range.

Usage

date_from(date_range, to = Sys.Date(), default_from = "1000-01-01")

Arguments

date_range

date range, available value including nd, nm, mtd, qtd, ytd, ny, max.

to

a date, default is current system date.

default_from

the default date when date_range is sett to max

Value

It returns the start date of a date_range with a specified end date.

Examples

date_from(3)
date_from('3d')

date_from('3m')
date_from('3q')
date_from('3y')

date_from('mtd')
date_from('qtd')
date_from('ytd')


latest workday

Description

The latest workday date of n days before a specified date.

Usage

date_lwd(n, to = Sys.Date())

Arguments

n

number of days

to

a date, default is current system date.

Value

It returns the latest workday date that is n days before a specified date.

Examples

date_lwd(5)
date_lwd(3, "2016-01-01")
date_lwd(3, "20160101")


date to number

Description

It converts date to numeric value in specified unit.

Usage

date_num(x, unit = "s", origin = "1970-01-01", scientific = FALSE)

Arguments

x

date.

unit

time unit, available values including milliseconds, seconds, minutes, hours, days, weeks.

origin

original date, defaults to 1970-01-01.

scientific

logical, whether to encode the number in scientific format, defaults to FALSE.

Examples

# setting unit
date_num(Sys.time(), unit='milliseconds')
date_num(Sys.time(), unit='mil')

date_num(Sys.time(), unit='seconds')
date_num(Sys.time(), unit='s')

date_num(Sys.time(), unit='days')
date_num(Sys.time(), unit='d')

# setting origin
date_num(Sys.time(), unit='d', origin = '1970-01-01')
date_num(Sys.time(), unit='d', origin = '2022-01-01')

# setting scientific format
date_num(Sys.time(), unit='mil', scientific = FALSE)
date_num(Sys.time(), unit='mil', scientific = TRUE)
date_num(Sys.time(), unit='mil', scientific = NULL)


merge data.frames list

Description

Merge a list of data.frames by common columns or row names.

Usage

merge2(datlst, by = NULL, all = TRUE, ...)

Arguments

datlst

a list of data.frames.

by

A vector of shared column names in x and y to merge on. This defaults to the shared key columns between the two tables. If y has no key columns, this defaults to the key of x.

all

logical; all = TRUE is shorthand to save setting both all.x = TRUE and all.y = TRUE.

...

Additional parameters provided in the merge function.


char repetition rate

Description

reprate estimates the max rate of character repetition.

Usage

reprate(x, col)

Arguments

x

a character vector or a data frame.

col

a character column name.

Value

a numeric vector indicating the max rate of character repetition in the corresponding elements in argument x vector.

Examples

x = c('a', 'aa', 'ab', 'aab', 'aaab')
reprate(x)

reprate(data.frame(x=x), 'x')

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.