Необходимо объединить вывод файла расширения.grid в файл cvs в R

У меня есть 20 различных списков переменных, скажем

a= c("red" "blue"), b= c("circle", "square"), c= c("inside","outside")

Я беру комбинации между различными списками командой:

 data1 <- expand.grid(a, b) 
 data2 <- expand.grid(a, d) 

Я хочу объединить все выходные данные data1, data2 в единый набор данных.

Я хотел бы экспортировать данные в файл CVS.

1 ответ

Решение

Для приведенного вами примера вы можете сделать это:

all_combined <- do.call("rbind",
  lapply(combn(list(a, b, c), 2, simplify = FALSE),
    do.call, what = "expand.grid")
)

Выход

#     Var1    Var2
#1     red  circle
#2    blue  circle
#3     red  square
#4    blue  square
#5     red  inside
#6    blue  inside
#7     red outside
#8    blue outside
#9  circle  inside
#10 square  inside
#11 circle outside
#12 square outside

Если вы просто хотите конкретные комбинации, вы можете сделать:

data1 <- expand.grid(a, b)
data2 <- expand.grid(a, c)

combined <- rbind(data1, data2)

Это может быть записано в CSV с помощью:

write.csv(combined, "CombinedData.csv")
Другие вопросы по тегам