2017-04-19 15 views
2

data.frameの複数の変数に同じ値を割り当てたいとします。私は似たような複数の記事を見てきましたが、私の特定の問題に対処するようには見えません。ここで複数の変数に同じ値を割り当てます

Mass variable declaration and assignment in R?

Assign multiple new variables on LHS in a single line in R

私が作成したいの例data.frameです:

data = data.frame(
    a1 = 0.614, a2 = 0.614, a3 = 0.614, a4 = 0.614, a5 = 0.614, 
    a6 = 0.614, a7 = 0.614, a8 = 0.614, a9 = 0.614, a10 = 0.614, 
    c1 = -6.198, c2 = -6.198, c3 = -6.198, c4 = -6.198, c5 = -6.198, 
    c6 = -6.198, c7 = -6.198, c8 = -6.198, c9 = -6.198, c10 = -6.198, 
    d1 = 35.952, d2 = 35.952, d3 = 35.952, d4 = 35.952, d5 = 35.952, 
    d6 = 35.952, d7 = 35.952, d8 = 35.952, d9 = 35.952, d10 = 35.952) 

は、何かアドバイスや支援をいただき、ありがとうございます。私はベースのソリューションを好むR。申し訳ありませんが答えが明らかな場合。

答えて

7

について(あなたが出力data.frame内の行を好きなだけrow.namesを挿入)方法:

data = data.frame(row.names = '1') 
data[paste0('a', 1:10)] = .614 
data[paste0('c', 1:10)] = -6.198 
data[paste0('d', 1:10)] = 35.952 

または(列名は正確に正しいことではないだろう。おかげ@Frankここに私のアプローチを簡略化するために)

data.frame(a = .641, c = -6.198, d = 35.052)[ , rep(1:3, each = 10)] 
+0

どちらの答えは本当にいいです。私は通常24時間以上待っていますが、ありがとうございます。 –

6

は、一度にすべてを行います

n <- 10 
setNames(
    data.frame(rep(list(0.641,-6.198,35.952), each=n)), 
    paste0(rep(c("a","c","d"),each=n), seq_len(n)) 
) 
+0

出力 'data.frame'に2つ以上の行が必要な場合、これを調整する方法が見当たりません(nvmは' list'を正しく宣言する必要があります)。 – MichaelChirico

+1

@MichaelChirico - just bung '[ rep(1、nrows)、] '最後に。 – thelatemail

+0

いいです、私は鉱山の場合がありました。与えられた列で何度も 'c(.641、.58)'を繰り返しますが、どちらもこの方法にはかなり簡単です – MichaelChirico

関連する問題