変数名が非常に長い生データセットのデータフレームがあります。str
関数を使用してデータフレームの構造を表示し、表示される変数名に文字数制限を設けて読みやすくしたいと思います。
これが私が話しているようなものの再現可能な例です。
#Data frame with long names
set.seed(1);
DATA <- data.frame(ID = 1:50,
Value = rnorm(50),
This_variable_has_a_really_long_and_annoying_name_to_illustrate_the_problem_of_a_data_frame_with_a_long_and_annoying_name = runif(50));
#Show structure of DATA
str(DATA);
> str(DATA)
'data.frame': 50 obs. of 3 variables:
$ ID : int 1 2 3 4 5 6 7 8 9 10 ...
$ Value : num -0.626 0.184 -0.836 1.595 0.33 ...
$ This_variable_has_a_really_long_and_annoying_name_to_illustrate_the_problem_of_a_data_frame_with_a_long_and_annoying_name: num 0.655 0.353 0.27 0.993 0.633 ...
このstr
関数を使用したいのですが、変数名に表示する文字数に上限を設けて、以下のような出力が得られるようにします。ドキュメントを読みましたが、これを行うオプションがあるかどうかを特定できませんでした。(データ内の文字列の長さに上限を課すオプションがあるようですが、変数名の長さに制限を課すオプションが表示されません。)
'data.frame': 50 obs. of 3 variables:
$ ID : int 1 2 3 4 5 6 7 8 9 10 ...
$ Value : num -0.626 0.184 -0.836 1.595 0.33 ...
$ This_variable_has... : num 0.655 0.353 0.27 0.993 0.633 ...
質問:データフレームの構造を取得する簡単な方法はありますが、変数名の長さに制限を課します(上記のような出力を取得するため)?
私があなたが正しいと思う限り、これを制御するための組み込みの手段はないようです。また、str()
何も返さないため、事後にそれを行うことはできません。したがって、最も簡単なオプションは、事前に名前を変更することです。に依存してsetNames()
、これを実現するための単純な関数を作成できます。
short_str <- function(data, n = 20, ...) {
name_vec <- names(data)
str(setNames(data, ifelse(
nchar(name_vec) > n, paste0(substring(name_vec, 1, n - 4), "... "), name_vec
)), ...)
}
short_str(DATA)
'data.frame': 50 obs. of 3 variables:
$ ID : int 1 2 3 4 5 6 7 8 9 10 ...
$ Value : num -0.626 0.184 -0.836 1.595 0.33 ...
$ This_variable_has... : num 0.655 0.353 0.27 0.993 0.633 ...
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加