如何修复错误消息“ round(pwfst,3)中的错误:数学函数的非数字参数”

时间:2019-01-02 12:56:33

标签: r

我正在使用

pwfst <-stamppFst(gl, nboots=1, percent=95, nclusters=1)
round(pwfst,3)

如果nboots = 1,可以很好地工作,但是当我尝试nboots = 3,时 我收到以下错误:

Error in round(pwfst, 3) : non-numeric argument to mathematical function

我想最终使用nboots = 100

我读过几篇帖子

non-numeric argument to mathematical function

但是没有一个与此问题有关。建议一位帖子确保我只加载了必要的软件包。我做到了,没有任何改变。

请问有人吗? 谢谢。

编辑:pwfst不是列表。 它具有这种形式-还有5列

              Bees Nest Ridge_12 Bees Nest Ridge_15 Broken Back Trail Cousins Creek
Bees Nest Ridge_12                 NA                 NA                NA            NA
Bees Nest Ridge_15              0.092                 NA                NA            NA
Broken Back Trail               0.124              0.067                NA            NA
Cousins Creek                   0.396              0.352             0.376            NA
Sawpit Rd                       0.104              0.046             0.077         0.349
Wallaby Rocks                   0.450              0.384             0.421         0.540
Bees Nest Ridge_13              0.161              0.098             0.132         0.403
Wingen Maid                     0.433              0.376             0.409         0.537
Bees Nest Ridge_14              0.086              0.025             0.056         0.354

第二次修改:

str(pwfst)

返回

num [1:9, 1:9] NA 0.0922 0.1243 0.3964 0.1038 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:9] "Bees Nest Ridge_12" "Bees Nest Ridge_15" "Broken Back Trail" "Cousins Creek" ...
  ..$ : chr [1:9] "Bees Nest Ridge_12" "Bees Nest Ridge_15" "Broken Back Trail" "Cousins Creek" ...
  

希望这对足以帮助我的人足够的信息。 谢谢, 露丝P

1 个答案:

答案 0 :(得分:1)

UNUserNotificationCenter.current().requestAuthorization(options: .badge) { (granted, error) in if error != nil { // success! } } 函数的文档显示为:“如果nboots <2,则不执行引导程序,因此仅返回Fst值矩阵。”因此,如果stamppFst()是使用1次引导进行分析的结果,则需要为pwfst函数提供一个矩阵,round函数可以处理该矩阵。在其他情况下(当nboots> = 2时),您将为round函数提供一个列表,该列表无法通过这种方式进行处理。

如果round是列表,则可以运行pwfst,以便它在列表中的每个矩阵上运行。