Ton*_*ony 3 attributes r names lvalue
在R中,"assign('x',v)"将名称为"x"的对象设置为v.将"x"替换为将文本函数应用于变量x的结果.然后"分配"显示其价值.
不幸的是,"assign('paste('name(','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"
Run Code Online (Sandbox Code Playgroud)
但如果你必须做这种技巧,你的代码就会出现问题.