在R中,我正在生成一個包含發給人員列表的隨機部分的文檔。如何將僞隨機變量與字符串關聯?
但是,我希望同一個文件發給同一個人,但生成了多次,返回的總是相同的數字。
比如我品嚐一個組號(A或B),我想該文件的任何版本的人員P說,比方說,A
我知道set.seed
功能,但是這需要一個整數,其中我有字符串(人名)。那麼,在我的情況下,是否有一種巧妙的方法將字符串映射爲整數?或者用於生成隨機文檔的其他(更簡單的)解決方案?
在R中,我正在生成一個包含發給人員列表的隨機部分的文檔。如何將僞隨機變量與字符串關聯?
但是,我希望同一個文件發給同一個人,但生成了多次,返回的總是相同的數字。
比如我品嚐一個組號(A或B),我想該文件的任何版本的人員P說,比方說,A
我知道set.seed
功能,但是這需要一個整數,其中我有字符串(人名)。那麼,在我的情況下,是否有一種巧妙的方法將字符串映射爲整數?或者用於生成隨機文檔的其他(更簡單的)解決方案?
也許文本轉換爲十六進制或位會幫助你:
# simple example
x <- charToRaw("Matthew")
y <- rawToBits(x)
packBits(y)
# [1] 4d 61 74 74 68 65 77
rawToChar(packBits(y))
# [1] "Matthew"
# with more data
df <- data.frame(names=c("Matthew M.", "Mark T.", "Luke S.", "John U."), stringsAsFactors = FALSE)
df$Raw <- lapply(df$names, FUN=charToRaw)
df$Bits <- lapply(df$Raw, FUN=rawToBits)
bitsToChar <- function(x) {rawToChar(packBits(x))}
df$Char <- lapply(df$Bits, FUN=bitsToChar)
df$Char
# [[1]]
# [1] "Matthew M."
#
# [[2]]
# [1] "Mark T."
#
# [[3]]
# [1] "Luke S."
#
# [[4]]
# [1] "John U."
我不知道怎麼做,在R,但它應該是很容易實現的散列函數映射一個字符串一個整數。例如:http://stackoverflow.com/a/2624210/2947592 – wvdz
如果在您的示例中,您可以預先知道所有人員,則可以使用名稱作爲級別創建一個因子,並使用整數表示來設置種子 –
使用因子(你可能已經擁有了,因爲這是讀取。*函數的字符數據的默認值),並以'as.numeric'轉換。 –