質問

レッツは、私はそうのように、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" の "ラベル1" ます。

役に立ちましたか?

解決

あなたにはありません。

スペースに対処することができませんでした - あなたは形式を望むスペースを持つあなたはdf$column.1を使用するときに遊びに来て識別子の要件を満たしていないでしょう。だから、詳細についてはmake.names()機能や例を参照してください。

> make.names(c("Foo Bar", "tic tac"))
[1] "Foo.Bar" "tic.tac"  
>                                              

他のヒント

あなたは(だけでなく、check.names = FALSEのように)data.frameread.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から:

  

A構文的に有効な名前は、文字、数字、文字または数字が続いていないドットのドットまたは下線文字と開始から構成されています。こうした「.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作成時ではなく、TO-行うのと同じ列名変更時の自動変換の列名に私にはかなり矛盾しているようだが、Rは、現時点ではどのように動作するかのthatsます。

names(df)<-c('Label 1','Label 2)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top