我有字符資料串列。我想用亂數替換這些字符。
characters<-LETTERS[c(1:10,1:10,11:15)]
numbers <- floor(runif(16, min = 1, max = 100))
如何將數字添加到每個字符中?
uj5u.com熱心網友回復:
只需使用factors 并轉換為數字。
as.numeric(as.character(factor(characters, labels=numbers)))
# [1] 91 93 29 83 64 52 73 14 66 70 91 93 29 83 64 52 73 14 66 70 46 72 93 26 46
您也可以levels=按任意順序閱讀。
as.numeric(as.character(factor(characters,
levels=c("L", "E", "D", "B", "H", "O", "C", "K", "G", "A", "N", "J",
"M", "I", "F"),
labels=numbers)))
# [1] 70 83 73 29 93 46 66 64 26 72 70 83 73 29 93 46 66 64 26 72 14 91 93 46 52
或者,使用 R >= 4.1
characters |>
factor(levels=c("L", "E", "D", "B", "H", "O", "C", "K", "G", "A", "N", "J",
"M", "I", "F"),
labels=numbers) |>
as.character() |>
as.numeric()
# [1] 70 83 73 29 93 46 66 64 26 72 70 83 73 29 93 46 66 64 26 72 14 91 93 46 52
資料:
set.seed(42)
characters <- LETTERS[c(1:10, 1:10, 11:15)]
numbers <- floor(runif(length(unique(characters)), min=1, max=100))
uj5u.com熱心網友回復:
創建參考鍵,然后合并資料
data <- data.frame(char = LETTERS[c(1:10,1:10,11:15)])
key <- data.frame(char = unique(data$char), num = sample(0:99, size=length(unique(data$char)), replace=FALSE))
merge(key, data, on="char")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/394663.html
