0

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

我正在尝试找到一个简单的命令来输出包含 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))

非常感谢,

4

1 回答 1

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

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

于 2013-07-23T11:11:16.443 回答