0

これを投稿する前に何度も考えました。本当に簡単ですが、それを行う方法が見つかりませんでした。非常に基本的なものでしたら申し訳ありません。

for ループの結果の値である 2 つの列を含むデータフレームを、そのループ内の変数名とともに出力する簡単なコマンドを見つけようとしています。使用しているコマンドは次のとおりです。

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 に答える