Манипулировать массивом из списка - R - PullRequest
1 голос
/ 29 января 2020

Как я могу манипулировать массивами, на которые ссылаются, используя имена в списке?

Например, как мне добавить новый столбец и присвоить значение массивам a и b, ссылаясь на них из списка ? как показано в этом примере:

a = data.frame(v1 = seq(1,5), v2=seq(1,5))
b = data.frame(v1 = seq(2,5), v2=seq(2,5))

list = c("a", "b")

for(i in list){
  # print array
  print(get(i))

  # or create copy and assign value
  j=get(i)
  j$v3 = 1
}

1 Ответ

1 голос
/ 29 января 2020

Прежде всего, не используйте функции (например, список) в качестве имен переменных. Это действительно нет-нет. Если вы хотите сохранить a и b в списке, вам нужно сделать следующее:

 your_list <- list("a" = a,
                   "b" = b)

Вы хотите l oop над именами списка

for(i in names(list)){
   # print array
   print(your_list[[i]]) # you need two [ when referencing on a list

   # or create copy and assign value
   j <- your_list[[i]]
   j$v3 <- seq(1:nrow(j))
   assign(i,j)
}
...