R - 从字符串中删除as.numeric

时间:2013-11-07 13:22:39

标签: r

我有时会将我在模型中使用的变量进行矢量化并使用它来做其他事情(例如描述性等等)。问题是有时我使用“as.numeric(var)”或“as.factor(var)”或中心“I(var-15)”。然后我需要原始变量的名称。

问题是我不能简单地gsub(lmfit $ model,“as.factor(”,“”)因为我得到一个错误,我想避免删除包含I等的变量...所以我需要删除I(* -any number)和as.factor(*),其中*是我想保持不变的变量名。

假设我有一个来自模型的系数向量:

outcome <- c(1:9)
INDEX <- c(18,17,15,20,10,20,25,13,12)
BODYFAT <- c(18,18,15,20,20,20,15,20,15)
lmfit <- glm(outcome ~ as.factor(BODYFAT) + I(INDEX-15), family = gaussian())
names(lmfit$model)

你如何处理名称(lmfit $ model)以获取原始变量名称(即BODYFAT和INDEX?

我已经开始创建一些笨重的代码来删除所有的居中数字(假设在大多数情况下1到500就足够了)

b<-paste(paste0("- ",1:500,"|",collapse=""),"-501",collapse="")
    library(stringr)
    str_replace_all(names(lmfit$model),b, " ")

但是我在删除I()和as.factor()方面遇到了实际问题。有什么建议吗?

非常感谢提前

0 个答案:

没有答案