次のようなdata.frameがあるとします。
x <- c(1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10)
df <- data.frame("Label 1"=x,"Label 2"=rnorm(100))
頭(df、3)
戻り値:
Label.1 Label.2
1 1 1.9825458
2 2 -0.4515584
3 3 0.6397516
列名のピリオドでスペースを自動的に置き換えるのをRに停止させるにはどうすればよいですか?つまり、「Label.1」ではなく「Label 1」です。
あなたはしません。
スペースが必要な場合、フォーマットは_df$column.1
_を使用したときに再生される識別子の要件を満たさないため、スペースに対応できません。詳細または例については、make.names()
関数を参照してください。
_> make.names(c("Foo Bar", "tic tac"))
[1] "Foo.Bar" "tic.tac"
>
_
check.names = FALSE
をdata.frame
に設定することができます(およびread.table
にも):
df <- data.frame("Label 1" = 1:3, "Label 2" = rnorm(3), check.names = FALSE)
戻り値:
Label 1 Label 2
1 1 0.2013347
2 2 1.8823111
3 3 -0.5233811
?data.frame
から:
check.names
論理的。TRUE
の場合、データフレーム内の変数の名前がチェックされ、それらが構文的に有効な変数名であり、重複していないことを確認します。必要に応じて、(make.names
によって)調整されます。
?make.names
から:
構文的に有効な名前は、文字、数字、ドットまたは下線文字で構成され、文字またはドットで始まり、その後に数字が続きません。 「.2way」などの名前は無効であり、予約語でもありません。
無効な文字はすべて「
.
」に変換されます
また、$
を使用して「無効な」名前で変数をサブセット化する必要がある場合は、バックティック`
を使用できます。例えば:
df$`Label 1`
スペースを含むように既存のデータフレーム名を変更できます(例を使用して)
x <- c(1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10)
df <- data.frame("Label 1"=x,"Label 2"=rnorm(100))
colnames(df) <- c("Label 1", "Label 2")
head(df, 3)
戻り値
Label 1 Label 2
1 1 0.2013347
2 2 1.8823111
3 3 -0.5233811
$演算子を使用して列にアクセスできます。二重引用符を使用するだけです。
df$"Label 2"[1:3]
戻り値
[1] 0.2013347 1.8823111 -0.5233811
Data.frameの作成時に列名を自動変換することは、私にはかなり矛盾しているようですが、列名の変更中に同じことを行うわけではありませんが、現時点ではRが機能しています。
names(df)<-c('Label 1','Label 2)