是否可以动态创建新的变量名称?
我想将列表中的数据帧读入最后带数字的新变量.像orca1,orca2,orca3 ......
如果我尝试类似的东西
paste("orca",i,sep="")=list_name[[i]]
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
target of assignment expands to non-language object
Run Code Online (Sandbox Code Playgroud)
还有另一种方法吗?
见下文:
paste("perf.a", "1", sep="")
[1] "perf.a1"
Run Code Online (Sandbox Code Playgroud)
如果我想分配值perf.a1
怎么办?
我尝试了as.name
,as.symbol
等等,但无济于事:
as.name(paste("perf.a", "1", sep="")) = 5
Error in as.name(paste("perf.a", "1", sep = "")) = 5 :
target of assignment expands to non-language object
as.symbol(paste("perf.a", "1", sep="")) = 5
Error in as.symbol(paste("perf.a", "1", sep = "")) = 5 :
target of assignment expands to non-language object
noquote(paste("perf.a", "1", sep="")) = 5
Error in noquote(paste("perf.a", "1", sep = "")) = 5 :
target of assignment expands to non-language object
Run Code Online (Sandbox Code Playgroud) 有一天R-gotcha让你真的感到惊讶吗?我想我们都可以分享这些.
这是我的:在列表索引中,my.list[[1]]
不是my.list[1]
.在R的早期学到了这一点.
在R中,"assign('x',v)"将名称为"x"的对象设置为v.将"x"替换为将文本函数应用于变量x的结果.然后"分配"显示其价值.
不幸的是,"assign('paste('name(','x',')',sep =''),v)"失败.因此,如果'x'是变量x,我可以设置它的值,但我不能给它的元素命名.
可以解决这个问题吗?也许是一个解析的伎俩?谢谢.
我有一个简单的两个矢量数据帧(长度= 30),看起来像这样:
> mDF
Param1 w.IL.L
1 AuZgFw 0.5
2 AuZfFw 2
3 AuZgVw 74.3
4 AuZfVw 20.52
5 AuTgIL 80.9
6 AuTfIL 193.3
7 AuCgFL 0.2
8 ...
Run Code Online (Sandbox Code Playgroud)
我想使用每一行来形成30个单值数值向量,其中包含从中获取的向量的名称mDF$Param1
,以便:
> AuZgFw
[1] 0.5
Run Code Online (Sandbox Code Playgroud)
等等
我尝试过融化和铸造,但我怀疑可能有更简单的方法吗?