R語言中的函數c()中的c代表什麼意思?


c本身在這裡應該是「combine」的首字母,用於合併一系列數字從而形成向量/數列。


help(c)

得到的文檔是:

Combine Values into a Vector or ListDescription

This is a generic function which combines its arguments.

The default method combines its arguments to form a vector. All arguments are coerced to a common type which is the type of the returned value, and all attributes except names are removed.

所以「c"表示「combine」


concatenate



向量!


colume 的意思我猜, 對應有cbind ,rbind rbind 的r是row 的意思


Description

This is a generic function which combines its arguments.

The default method combines its arguments to form a vector. All arguments are coerced to a common type which is the type of the returned value, and all attributes except names are removed.

Usage

## S3 Generic function

c(...)

## Default S3 method:

c(..., recursive = FALSE, use.names = TRUE)

Arguments

...

objects to be concatenated.

recursive

logical. If recursive = TRUE, the function recursively descends through lists (and pairlists) combining all their elements into a vector.

use.names

logical indicating if names should be preserved.

Details

The output type is determined from the highest type of the components in the hierarchy NULL &< raw &< logical &< integer &< double &< complex &< character &< list &< expression. Pairlists are treated as lists, but non-vector components (such names and calls) are treated as one-element lists which cannot be unlisted even if recursive = TRUE.

Note that factors are treated only via their internal integer codes; one proposal has been to use

c.factor &<- function(..., recursive=TRUE) unlist(list(...), recursive=recursive)

if factor concatenation by c() should give a factor.

c is sometimes used for its side effect of removing attributes except names, for example to turn an array into a vector. as.vector is a more intuitive way to do this, but also drops names. Note too that methods other than the default are not required to do this (and they will almost certainly preserve a class attribute).

This is a primitive function.

Value

NULL or an expression or a vector of an appropriate mode. (With no arguments the value is NULL.)

S4 methods

This function is S4 generic, but with argument list (x, ..., recursive = FALSE).

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth Brooks/Cole.

See Also

unlist and as.vector to produce attribute-free vectors.

Examples

c(1,7:9)

c(1:5, 10.5, "next")

## uses with a single argument to drop attributes

x &<- 1:4

names(x) &<- letters[1:4]

x

c(x) # has names

as.vector(x) # no names

dim(x) &<- c(2,2)

x

c(x)

as.vector(x)

## append to a list:

ll &<- list(A = 1, c = "C")

## do *not* use

c(ll, d = 1:3) # which is == c(ll, as.list(c(d = 1:3))

## but rather

c(ll, d = list(1:3)) # c() combining two lists

c(list(A = c(B = 1)), recursive = TRUE)

c(options(), recursive = TRUE)

c(list(A = c(B = 1, C = 2), B = c(E = 7)), recursive = TRUE)


When I learned R I also thought for ages that "c" stood for "concatenate" not "combine" - the manpage and doc are ambiguous, and c"s arguments are documented as "... objects to be concatenated." Confusingly, "cat"concatenates object representations and outputs them (or "catenate" if you"re from UNIXland). More confusingly, "paste" also combines and outputs. Finally, the "c" in "cbind" is neither for "combine" nor "concatenate" but for "column" (/*"rbind"*). I guess someone could raise documentation bugs to restore sanity, but then how would we pass the time...?

Reference:

Why use c() to define vector?


c() is concatenate function.


concat .. 連接?


connect 連接


這個函數會生成一個向量(謝謝 楊銳提醒),但是為什麼叫這麼蛋疼的名字我就不知道了。


推薦閱讀:

Maple或Matlab怎麼解不定方程?
如何用R語言做結構方程模型?
怎樣學習matlab或R語言?
2018 年大家碼下的第一行代碼是什麼?
R語言中S3,S4,RC結構都分別是什麼?

TAG:統計學 | R編程語言 |