我正在處理一些列名中包含特殊字符的大型資料集。列名類似于:“@c_age1619_da * ((df.age >= 16) & (df.age <= 19))”或“sovtoll_available == False”。使用這些名稱的最佳方式是什么?我應該保持名稱不變還是將它們重命名為更適合 R 的名稱?當我在 df$value 之類的情況下呼叫它們時,R 錯誤地將列名解釋為函式!
uj5u.com熱心網友回復:
保留非標準名稱的唯一優勢是,如果您想將它們用作繪圖或表格或其他內容中的標簽。但這會使處理資料變得非常困難,而且這些名稱以后可能會作為標簽重新引入。您可以通過將它們放在反引號中來使用非標準名稱,例如,
df$`@c_age1619_da`
一些編輯器(如 RStudio)會正確地自動完成這些非標準名稱,使它們更容易使用,但仍然不如標準名稱好。
將它們重命名為標準名稱通常會更好。許多讀入資料的函式會自動執行此操作。您可以使用該make.names
函式將非標準名稱轉換為標準名稱,主要是將任何特殊字符替換為.
s。像這樣:
names(my_data) = make.names(names(my_data))
但通常最好的方法是手動創建有意義的名稱。sovtoll_available....False
與類似sovtoll_unavailable
.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377755.html
上一篇:具有三個真條件的if陳述句
下一篇:數字的R分類