在R中,我正在制作一个文档,其中包含针对人员列表的随机部分。

但是,我希望发送给同一个人但多次生成的同一文档始终返回相同的数字。

例如,我抽样了一个团队编号(A或B),并且我希望文档P的任何版本供个人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 - 如何将伪随机变量与字符串关联?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35784766/

10-11 22:57
查看更多