我有一个向量,purity,它包含10,000个金块的纯度(作为字符串)。
purity <- sample(c("pure","high","medium","low"), 10000, replace = TRUE) 我想要生成第二个向量'coef',这样coef中的元素n的值依赖于purity中的元素n的值,而purity中的“纯”、“高”、“中等”和“低”分别对应于coef中的1.0、0.8、0.5和0.2。
下面是一对向量,包括手动生成的和length=5,说明了我的目标。
> purity <- c("medium", "high", "low", "high", "pure")
> coef <- c( 0.5, 0.8, 0.2, 0.8 , 1.0) #spaces added for legibility
> purity
[1] "medium" "high" "low" "high" "pure"
> coef
[1] 0.5 0.8 0.2 0.8 1.0如何使此过程自动化?
发布于 2022-09-08 15:47:00
我们可以使用match或命名向量进行替换。purity和coef是用来匹配较长的向量'purity1‘的key/value对。当我们使用setNames时,它在coef上创建一个命名向量,该向量将用于与相应的“purity1”值匹配,以返回对应于该匹配的“coef”值。
out <- unname(setNames(value, key)[purity])-checking输出
> head(purity)
[1] "low" "pure" "pure" "low" "medium" "high"
> head(out)
[1] 0.2 1.0 1.0 0.2 0.5 0.8哪里
purity <- sample(c("pure","high","medium","low"), 10000, replace = TRUE)
key <- c("low", "medium", "high", "pure")
value <- c(0.2, 0.5, 0.8, 1.0) https://stackoverflow.com/questions/73651835
复制相似问题