我有一个简单的两个向量数据帧(长度=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 ...
我想使用每一行形成 30 个单值数值向量,向量的名称取自mDF$Param1
, 以便:
> AuZgFw
[1] 0.5
etc
我尝试过熔化和铸造,但我怀疑可能有更简单的方法吗?
最简单/最短的方法是apply
assign
超过行:
mDF <- read.table(textConnection("
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
"),header=T,stringsAsFactors=F)
invisible(apply(mDF,1,function(x)assign(x[[1]],as.numeric(x[[2]]),envir = .GlobalEnv)))
这涉及到数据帧的第二列与字符串之间的转换。invisible
是否只是为了抑制输出apply
.
编辑:您还可以使用mapply
避免字符串的强制转换:
invisible(mapply(function(x,y)assign(x,y,envir=.GlobalEnv),mDF$Param1,mDF$w.IL.L))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)