簡體   English   中英

在R的公式中使用帶有特殊字符的列

[英]Using columns with special characters in formulae in R

我正在嘗試使用具有約200列的數據框使用rpart來創建決策樹。 其中一些列的名稱中帶有數字,某些列具有特殊字符(例如“ /”)。 當我嘗試生成樹時,出現如下錯誤:

R> gg.rpart <- rpart(nospecialchar ~ Special/char, data=temp, method="class")
Error in eval(expr, envir, enclos) : object 'Special' not found
R> gg.rpart <- rpart(nospecialchar ~ "Special/char", data=temp, method="class")
Error in terms.formula(formula, data = data) : invalid model formula in ExtractVars
R> gg.rpart <- rpart(nospecialchar ~ `Special/char`, data=temp, method="class")
Error in `[.data.frame`(frame, predictors) : undefined columns selected

我是否必須更改名稱以容納R或是否可以通過某種方式將帶有特殊字符的列名稱傳遞給R公式?

這有效:

dat <- data.frame(M=rnorm(10),'A/B'=1:10,check.names=F)

> lm(M~`A/B`,dat)

Call:
lm(formula = M ~ `A/B`, data = dat)

Coefficients:
(Intercept)        `A/B`  
    -1.0494       0.1214  

喬蘭( Joran )對我的問題的評論就是答案-我不知道是否存在make.names()

喬蘭,如果您回答的話,我會標記為正確。 干杯!

我只是遇到了同樣的問題,將名稱傳遞給R公式時,我不希望名稱發生任何變化。 R允許非語法列名帶有反引號。 因此,我嘗試在名稱中添加反引號,效果也很好。 我的代碼如下:

lapply(colnames(variable), function(gene){
formula0 <- paste0("gleason_grade", "~" "`", gene, "`")
logit <- clm(as.formula(formula0), data = mydata)
})

現在您可以將新變量無誤地傳遞給公式了。
如果您不希望像我一樣對該變量進行任何更改,請反選它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM