# Korean translation for R stats4 package
# Copyright (C) 1995-2018 The R Core Team
#
# This file is distributed under the same license as the R stats4 package.
# Maintained by Chel Hee Lee <gnustats@gmail.com>, 2008-2018.
#
msgid ""
msgstr ""
"Project-Id-Version: R-3.5.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2012-12-10 18:35\n"
"PO-Revision-Date: 2018-04-09 12:10-0600\n"
"Last-Translator: Chel Hee Lee <gnustats@gmail.com>\n"
"Language-Team: \n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"

msgid ""
"some named arguments in 'fixed' are not arguments to the supplied log-likelihood"
msgstr ""
"'fixed'내의 일부 named arguments는 주어진 log-likelihood에 쓰이는 인자가 아닙니다"

msgid "'start' must be a named list"
msgstr "'start'는 반드시 이름이 주어진 리스트(named list)이어야 합니다"

msgid ""
"some named arguments in 'start' are not arguments to the supplied log-likelihood"
msgstr ""
"'start'내의 일부 이름을 가진 인자(named arguments)들은 주어진 로그-우도함수(log-"
"likelihood)에 쓰이는 인자가 아닙니다."

msgid "profiling has found a better solution, so original fit had not converged"
msgstr ""
"프로파일링(profiling)으로부터 더 적합한 해를 찾았기 대문에 초기의 적합은 수렴하지 않"
"았음을 의미합니다"

msgid "levels truncated to positive values only"
msgstr "levels는 오로지 양의 값만을 가지도록 잘려집니다."

msgid "extra arguments discarded"
msgstr "추가적인 인자들은 사용되지 않았습니다."
