使用subset筛选变量时触发vec_as_location()错误求助
问题排查与解决
错误原因
这个报错是因为你的R环境中加载了tidyverse系列包(如dplyr),dplyr的select函数与base R原生subset函数的select参数发生了命名冲突,导致subset意外调用了tidyverse内部的vec_as_location()函数,而该函数不允许传递额外参数,最终触发错误。
解决方案
方案1:强制调用base R的subset函数
明确指定使用base R原生的subset,避免与dplyr的函数混淆:
data <- base::subset(Vitamin_D_MRS, select = c(PCR_status, Sex, Age, BMI, ethnic, comorb, Vitamin_supplementation, Season, Exposure))
方案2:改用dplyr的select语法(推荐)
如果已经加载了dplyr或tidyverse,直接使用dplyr的select函数,语法更直观:
# 若未加载dplyr,先执行加载 library(dplyr) data <- Vitamin_D_MRS %>% select(PCR_status, Sex, Age, BMI, ethnic, comorb, Vitamin_supplementation, Season, Exposure)
内容的提问来源于stack exchange,提问作者anoncodernov
相关产品推荐
相关产品推荐

