我有一個較大的數據集(data.table,大約9m行),我想用一列來聚合值(最小值和最大值等)。列是各種其他列的組合,並且具有基於字符串的格式,像下面這樣:根據字符串創建一個唯一的整數
string <- "318XXXX | VNSGN | BIER"
獲得一些速度執行任務,我想重新編寫這唯一的整數。我定期使用的另一個應用程序處理數據的應用程序具有內置函數,該函數將上面的字符串轉換爲整數(例如73823)。我想知道R中是否有類似的功能?這個想法是,一個特定的字符串總是會導致相同的整數;這將允許它在合併data.tables等使用
這裏data.table列的一個小例子,我想簡單的整數值進行編碼:
sample <- c("318XXXX | VNSGN | BIER", "462XXXX | TZZZH | 9905", "462XXXX | TZZZH | 9905",
"462XXXX | TZZZH | 9905", "511XXXX | FAWOR | 336H", "511XXXX | FAWOR | 336H",
"652XXXX | XXXXR | T136", "652XXXX | XXXXR | T136", "672XXXX | BQQSZ | 7777",
"672XXXX | BQQSZ | 7777")
我希望能將字符串編碼爲如下所示的表格的附加列;請注意,相同的字符串會產生相同的數字。
String Number
318XXXX | VNSGN | BIER 19872
462XXXX | TZZZH | 9905 78392
462XXXX | TZZZH | 9905 78392
462XXXX | TZZZH | 9905 78392
511XXXX | FAWOR | 336H 23053
511XXXX | FAWOR | 336H 23053
652XXXX | XXXXR | T136 95832
652XXXX | XXXXR | T136 95832
672XXXX | BQQSZ | 7777 71829
672XXXX | BQQSZ | 7777 71829
'?factor'做你要找的東西嗎? – Justin
@Justin:字符串在R中被散列了很長一段時間,所以因素不會更有效率(可能會更慢)。但也許'as.integer(factor(sample))'是OP正在尋找的東西? –
@Justin對我來說,看起來像因素是做一些稍微不同,然後我嘗試做。例如'?factor'包含下面的例子'因子(字母[1:20],labels =「letter」)',它會產生'letter1 letter2(...)letter20'。我在'factor'文檔中錯過了什麼嗎?我添加了一個問題表,表明我試圖完成什麼。感謝您的快速回復。 – Jochem