R语言使用rowSums对多列求和时出现未知weekSum函数错误
问题解决:rowSums调用时出现weekSum错误
你的问题核心是base包的原生rowSums函数被其他加载的包给覆盖了,导致你调用rowSums时实际执行的是某个包中依赖weekSum的同名函数,所以才会弹出这个莫名其妙的错误。
解决方法如下:
直接调用base包的原生rowSums函数,明确指定命名空间:
base::rowSums(factors.table[,5:7])这样就能绕开被覆盖的函数,正常计算第5到7列的行求和。
找出冲突的包:
运行以下命令查看哪个包覆盖了rowSums:conflicts(detail = TRUE)$rowSums结果里除了
package:base之外的包就是罪魁祸首。你可以选择卸载这个包(比如包名叫XXX,就运行detach("package:XXX", unload = TRUE)),或者以后调用rowSums都加上base::前缀。验证原生函数:
可以先运行rowSums查看函数定义,如果输出不是base包的原生代码,就说明确实被覆盖了。原生rowSums的开头应该是类似function (x, na.rm = FALSE, dims = 1L) .Internal(rowSums(x, na.rm, dims))。
示例运行结果(基于你的数据):
base::rowSums(factors.table[,5:7]) # 输出:3 3 3 1 3 0 0 1 0 3
内容的提问来源于stack exchange,提问作者therickster
相关产品推荐
相关产品推荐

