R中的兩個數據幀均包含用於IP地址的字段。在每個數據框中,這些字段都是「因素」。用戶打算根據這些IP地址以及其他一些字段合併兩個數據幀。問題是,每個數據幀具有的IP地址不同的格式:如何有效地刪除(或添加)R中IP地址的前導零?
Dataframe A examples: 123.456.789.123, 123.012.001.123, 987.001.010.100
在數據幀B中的相同的IP地址將被格式化爲:
Dataframe B examples: 123.456.789.123, 123.12.1.123, 987.1.10.100
什麼是最好的(最有效)的方法是刪除來自A的前導零或將它們添加到B以便它們可以用於合併?該操作將在數百萬條記錄上執行,因此'最高效'考慮到計算時間(需要相對較快)。
哇,感謝您的快速響應。我得到一個錯誤 **在strsplit(x,「\\。」,perl = TRUE)中出錯:非字符參數** 我是否需要運行as.character,因爲它們當前是因子級別? – bnjmn
我運行** lapply(as.character(data $ IP),printPadded)**成功。謝謝。等待幾個小時才能接受答案。 – bnjmn
@本傑明啊,你應該小心一些因素。這些可以將所有東西都挖掘出來,因爲有時它們看起來像字符向量,但最終可能會被視爲整數。如果你加載數據,比如說'read.csv()',尋找'stringsAsFactors = FALSE'選項。或者,您可以在您的選項中進行設置 - 查看'?options'。 FWIW,我從沒有受益於加載字符串作爲因素 - 我只在需要時進行顯式因子轉換(例如在某些類型的模型中) – Iterator