从for循环中创建数据帧

时间:2013-07-23 09:38:26

标签: r variables for-loop save

在发布之前我曾多次想过,这很简单,但我找不到办法做到这一点,对不起,如果它非常基本。

我试图找到一个简单的命令来输出一个包含2列的数据帧,一个for循环产生的值,以及该循环中的变量名,这是我正在使用的命令

for (i in 1:length(x)) {

          k <- i*5

         ##### saving the values that comes out of the loop

    if (exists("v")== "TRUE" ) {
    v= append(v,k)
    }
    if (exists("v")== "FALSE"){
    v <- k
    }

         ###### adding the name of the column

      n <- names(x[i])


    if (exists("m")== "TRUE" ) {
    m= append(m,n)
    }
    if (exists("m")== "FALSE"){
    m <- n
    }
}
         ###### I manually put them into a dataframe and bind them

         v <- data.frame(v)
         m <- data.frame(m)

         df <- cbind(v,m)

我正在寻找的输出数据框:

       v           m
       5         MUYC
       10        KJIO
       15        KLGJ

我知道这是迟钝的,命令确实有效!!我相信有更简单的方法来写这个!到目前为止我找不到。

这是一个简单的可重现的例子

x矩阵

structure(list(MUYC = 1555L, KJIO = 320L, KLGJ = 5132L), .Names = c("MUYC", 
"KJIO", "KLGJ"), class = "data.frame", row.names = c(NA, -1L))

非常感谢,

1 个答案:

答案 0 :(得分:3)

在我看来,你想要做的就是这个:

data.frame( v = seq( from = 5 , by = 5 , length.out = length(x) ) , m = names(x) )
#   v    m
#1  5 MUYC
#2 10 KJIO
#3 15 KLGJ

但我不知道你的问题会有多普遍。