Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

assign the same value to multiple variables

Tags:

r

I wish to assign the same value to multiple variables in a data.frame. I have looked at multiple posts here that seem similar, but do not appear to address my specific problem.

Mass variable declaration and assignment in R?

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

Here is an example data.frame I would like to create:

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)

Thank you for any advice or assistance. I prefer a solution in base R. Sorry if the answer is obvious.

like image 387
Mark Miller Avatar asked Apr 18 '26 10:04

Mark Miller


2 Answers

How about (insert as many row.names as you want rows in the output data.frame):

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

Or (column names won't be exactly right; thanks @Frank for simplifying my approach here)

data.frame(a = .641, c = -6.198, d = 35.052)[ , rep(1:3, each = 10)]
like image 194
MichaelChirico Avatar answered Apr 21 '26 00:04

MichaelChirico


Do it all in one go:

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))
)
like image 20
thelatemail Avatar answered Apr 21 '26 01:04

thelatemail



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!