2017-08-31 8 views
3

リストからデータフレームを生成するときに、変数の名前が "。"になることがあります。デフォルトでは変数名をより適切なものに変更する場合にのみ、dplyr関数内でこの変数を参照するにはどうすればよいですか。"。"という変数にdplyr関数を使用する

# Code that produces my data frame with "." as column name 
library(tidyverse) 

d <- data.frame(`.` = 1, row.names = "a") 

# Now my code fails because `.` is a poor column name for dplyr functions: 
d %>% select(model = rownames(.), outlier = `.`) 
+2

変更変数名... –

+0

あなたはB・ウィリアムズは、上記の提案として、列名を変更するに開放している場合は、この投稿にはさまざまなアプローチが含まれています:https://stackoverflow.com/questions/6081439/changing-column-names-of-a-data-frame –

+0

'.'はdplyrだけでなく、より多くの問題を引き起こします。変数名を変更します。 –

答えて

1

これは実際に名前の列に問題はありません。選択中rownamesを参照するとその問題()まだちょうど

0

を考えると異常値する列の名前を変更します

d <- data.frame(`.` = 1, row.names = "a") 
d %>% select(outlier = '.') 

を使用Error: Strings must match column names. Unknown columns: a

を返し

d <- data.frame(test = 1, row.names = "a") 
d %>% select(model = rownames(.), outlier = test) 

を参照してください

d <- data.frame(`.` = 1, row.names = "a") 

ベースRソリューション

colnames(d) <- 'newname' 

Dplyrソリューション

d %>% rename(newname = '.') 
+0

dplyrソリューションを使用すると、名前を変更して先にパイプすることができます! –

+1

'setNames' /' purrr :: set_names'パイプがきれいに – alistaire

+1

私はあなたのdplyrソリューションを使用すると、captureDotsのエラー(strict = '__quosured'):引数がすでに評価されています。" – Joe

関連する問題