在 R 中,“assign('x',v)”将名称为 'x' 的对象设置为 v。将 'x' 替换为将文本函数应用于变量 x 的结果。然后“分配”显示了它的值(value)。
不幸的是,“assign(paste('names(','x',')',sep=''),v)”失败了。所以如果'x'是一个变量x,我可以设置它的值,但我不能给它的元素命名。
可以解决这个问题吗?也许是一个解析评估技巧?谢谢。
最佳答案
在您提出问题的表格中,无需assign
名称。如果您 x
存在然后你做 names(x) <- v
.这是做到这一点的正确方法。
如果您的变量名称未知(即动态创建),那么您可以使用 substitute
nm <- "xxx" # name of your variable
v <- 1:3 # value
assign(nm,v) # assign value to variable
w <- c("a","b","c") # names of variable
eval(substitute(names(x)<-w, list(x=as.symbol(nm))))
# Result is
str(xxx)
# Named int [1:3] 1 2 3
# - attr(*, "names")= chr [1:3] "a" "b" "c"
但是,如果您必须执行这种技巧,那么您的代码就有问题。
关于r - 如何分配给R中变量值的names()属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2907896/