data.frame使用名称向量

时间:2020-10-03 08:38:36

标签: r dataframe

我可以使用变量名向量构成数据框吗?

have=c("aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj")
for(i in 1:10){assign(have[i],rnorm(10))}

want=data.frame(aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj)

我想知道是否可以使用aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj以某种方式更改最后一个have

2 个答案:

答案 0 :(得分:1)

假定have中的所有变量都存储在Global环境中。然后您也可以尝试以下方法:

want <- as.data.frame(mget(have))

答案 1 :(得分:0)

你可以做

have=c("aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj")
for(i in 1:10){assign(have[i],rnorm(10))}

want <- data.frame(sapply(have, get))
want
#>           aaa         bbb        ccc        ddd        eee         fff
#> 1   2.2111971  0.58169621  0.7558816 -1.6408627  0.7975625  0.09160389
#> 2  -0.7847731  1.60423888  0.3819555 -1.2061538  0.7545381 -0.64964125
#> 3  -1.2757056  0.57714761  0.4700359 -1.1041282 -0.3816839  0.40549014
#> 4  -0.0360762 -1.29007252 -0.7820075 -0.5319163 -0.2999686  0.51213744
#> 5   0.1763021  0.82259576 -0.4409983  1.4809103 -0.3658530 -0.16434920
#> 6   1.3196823 -0.18163744  1.5261259  1.3087872 -1.0644242 -1.31891628
#> 7   0.4076277 -0.89769591 -0.7778384 -0.3837985 -1.8659484 -1.53683062
#> 8   1.1872413 -0.06917426  0.3875081  0.4146543 -0.7035016 -0.63534985
#> 9   0.9037385  0.10581530  0.6210197  2.4435195 -1.2323838  0.84316865
#> 10 -0.8933586  1.47698413  0.4561502  1.0824430  2.2895535  0.05699095
#>           ggg         hhh        iii         jjj
#> 1  -0.4915989 -0.02034347 -1.6870239 -1.08651315
#> 2   1.7595238  0.47375431  0.5408044  0.65031636
#> 3  -2.0502394  0.85440730 -0.4114844 -0.17392623
#> 4  -1.1268393  0.68303043  1.1722424 -0.90590156
#> 5  -1.3235682  0.59603361 -0.8958801 -0.94192724
#> 6  -0.3669457 -0.27870024  1.8228263  0.01478657
#> 7   0.6525810 -0.00354290  0.3757264  0.34386963
#> 8  -0.3378531 -0.45219282 -0.8959065 -0.43244283
#> 9   0.3931531  0.61264470  0.6359348  0.02984539
#> 10 -0.5256779  0.79624735 -2.2912426 -1.06220090

reprex package(v0.3.0)于2020-10-03创建

相关问题