Mass Variable Declaration and Assignment in R

Mass variable declaration and assignment in R?

If you want to assign the same value to multiple variables at once, use this:

some <- thing <- and <- another <- thing <- vector('list', length(files))

How to assign same value to multiple variables in one line?

You might try simply:

for (x in letters) assign(x,1)

assign the same value to multiple variables

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)]

Declaration of mass variables in column headings in R

attach(mydata) will allow you to directly use the variable names. However, attach may cause problems, especially with more complex data/analyses (see Do you use attach() or call variables by name or slicing? for a discussion)

An alternative would be to use with, such as with(mydata, gls(DAY_CHG~INPUT_CHG)

Recoding multiple variables in R

This seems a bit clunky but it works:

mutate_cols <- c('A', 'B')

z[, mutate_cols] <- as.data.frame(lapply(z[, mutate_cols], function(x) ifelse(x == 300, 3,
ifelse(x == 444, 4,
ifelse(x== 555, 5, x)))))

Can you declare multiple variables at once in Go?

Yes, you can:

var a, b, c string
a = "foo"
fmt.Println(a)

You can do something sort of similar for inline assignment, but not quite as convenient:

a, b, c := 80, 80, 80

Assign same value to multiple variables in single statement

It's as simple as:

num1 = num2 = 5;

When using an object property instead of variable, it is interesting to know that the get accessor of the intermediate value is not called. Only the set accessor is invoked for all property accessed in the assignation sequence.

Take for example a class that write to the console everytime the get and set accessor are invoked.

static void Main(string[] args)
{
var accessorSource = new AccessorTest(5);
var accessor1 = new AccessorTest();
var accessor2 = new AccessorTest();

accessor1.Value = accessor2.Value = accessorSource.Value;

Console.ReadLine();
}

public class AccessorTest
{
public AccessorTest(int value = default(int))
{
_Value = value;
}

private int _Value;

public int Value
{
get
{
Console.WriteLine("AccessorTest.Value.get {0}", _Value);
return _Value;
}
set
{
Console.WriteLine("AccessorTest.Value.set {0}", value);
_Value = value;
}
}
}

This will output

AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5

Meaning that the compiler will assign the value to all properties and it will not re-read the value every time it is assigned.



Related Topics



Leave a reply



Submit