name
という変数を含むか含まないリストtest
が表示されます。はNULLを文字列に変換します(空文字または文字通りNULLです)
名前でアイテムを取得すると、 name
が不足している場合はです。はNULL
です。他のケースでは、temp
の値が不十分なので、temp
(その目的ではsprintf
を使用します)というデフォルトの値を割り当てて、name value XXX is invalid
のような警告を出したいと思います。
ただし、文字列に変換するのは苦労します。これにはRで1つのライナーがありますか?
as.character
は、character(0)
を生成し、sprintf
の引数の全体がcharacter(0)
になります。
ワークフローは、一般的に次のようになります。
for (name in name_list){
temp = test[[name]]
if(is.null(temp) || is_invalid(temp) {
warning(sprintf('%s is invalid parameter value for %s', as.character(temp), name))
result = assign_default(name)
} else {
result = temp
print(sprintf('parameter %s is OK', name)
}
}
PS。 is_invalid
は、他の場所で定義された関数です。私は''
または'NULL'
を返すas.character
の代理人が必要です。
これはまさしく私の意図ではありません。私は、ifelse(is.null(temp)|| is_invalid(temp)、sprintf( '%sは有効な名前ではなく、as.character(temp)) 'のようにしたいと思います。' as.character'だけが ' (0) ' –
だから正しく理解したら' is_invalid'関数が必要なのですか? –