R で make.names 関数を使用する方法 (例付き)
R で関数make.namesを使用すると、文字ベクトルから構文的に有効な名前を作成できます。
この関数は次の基本構文を使用します。
make.names(names, unique = FALSE)
金:
- names : 構文的に有効な名前に制約する文字のベクトル。
- unique : 一意の名前を作成するかどうか。デフォルト値は false です。
次の例は、さまざまなシナリオでこの関数を使用する方法を示しています。
例 1: ベクトルの有効な名前を作成する
次の数値ベクトルがあるとします。
#create vector of numeric values
numeric_values <- c(1, 1, 4, 7, 8)
#create syntactically valid names from numeric values
make. names (numeric_values)
[1] "X1" "X1" "X4" "X7" "X8"
R では、「有効な名前」を文字またはピリオドで始まる名前として定義します。
したがって、ベクトルの各数値を有効な名前に変換するには、R は各値の前に「X」を追加するだけです。
名前のうち 2 つ (「X1」) がまったく同じであることに注意してください。
名前を強制的に一意にするために、 unique=TRUEを指定できます。
#create vector of numeric values
numeric_values <- c(1, 1, 4, 7, 8)
#create syntactically valid names from numeric values
make. names (numeric_values, unique= TRUE )
[1] "X1" "X1.1" "X4" "X7" "X8"
各名前は一意になることに注意してください。
例 2: マトリックスの有効な名前を作成する
R に次の行列があるとします。
#create matrix
mat <- matrix(c(1, 2, 3, 7, 2, 4, 4, 6, 0, 1), ncol= 2 )
#view matrix
mast
[,1] [,2]
[1,] 1 4
[2,] 2 4
[3,] 3 6
[4,] 7 0
[5,] 2 1
#view column names of matrix
colnames(mat)
NULL
現在、行列には列名がないことに注意してください。
ただし、 make.names()関数を使用すると、列名をすばやく作成できます。
#create column names for matrix
colnames(mat) <- make. names (1:ncol(mat))
#view updated matrix
mast
X1 X2
[1,] 1 4
[2,] 2 4
[3,] 3 6
[4,] 7 0
[5,] 2 1
マトリックスに列名として「X1」と「X2」が含まれることに注目してください。
必要に応じて、列名を使用して行列の特定の列の値を抽出できるようになりました。
#view values in "X1" column of matrix
mat[, ' X1 ']
[1] 1 2 3 7 2
また、R で次のように入力すると、構文的に有効な名前を作成する方法に関する完全なドキュメントを読むことができることにも注意してください。
?make.names
追加リソース
次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。