【发布时间】:2020-01-02 01:53:05
【问题描述】:
我需要用列中的最小值除以 2 来代替 NA,而不是仅仅用平均值替换 NA。(我们的统计学家要求我对我们的数据执行此操作 - 我不是统计学家,所以请关注他们的指示)
这是我的数据的一瞥:
data
Group sp.Q13813.SPTN1_HUMAN sp.O14773.TPP1_HUMAN sp.P11137.MTAP2_HUMAN
1 Premutation 10713983468 367492324 2134747097
2 Premutation 10789498495 343303410 2677825476
3 Premutation 11134883489 383589325 2132552280
4 Premutation 9723552595 269965000 2262740921
5 Premutation 11175156282 359864993 1419225650
6 Premutation 10959077349 258095035 3343267633
7 Premutation 10770809133 331554977 2763604046
8 Premutation 11098182537 344384433 2198718886
到目前为止,这是我的代码,但我收到了一个函数调试错误消息:
data_ <- lapply(data, function(x) replace(x, is.na(x), (min(x, na.rm = TRUE)/2)))
Message: function (x, list, values)
{
x[list] <- values
x
}
【问题讨论】:
-
您收到错误是因为您试图为一个字符列(第一列)除以 2,这应该这样做: lapply(data[2:4], function(x) replace(x, is.na(x), min(x, na.rm = TRUE) / 2))
标签: r replace min na calculation