我尝试在R中使用HashMaps并收到以下错误消息:
wrong args for environment subassignment
这是我做的:
lvls <- union(levels(data$p1), union(levels(data$p2),levels(data2$p3)))
map <- new.env(hash=T, parent=emptyenv())
map[[lvls]] <- 1:length(lvls)
Error in map[[lvls]] <- 1:length(lvls) :
wrong args for environment subassignment
typeof(lvls):character
奇怪map[["example-value of lvls"]] <- 1
工作得很好
但是map[[lvls]] <- 1
没有
我最终要做的是将p1,p2和p3的字符转换为因子,而相同的字符应该是相同的因素。
答案 0 :(得分:3)
我不明白你为什么要在这里使用环境,但是你不能一次用[[
运算符分配多个元素。最好使用assign()
而不只是mapply()
超过您的值
Map(assign, lvls, seq_along(lvls), MoreArgs=list(envir=map))