Создание файла .csv из трех отдельных списков

#r #list

Вопрос:

Используя два списка ниже, я хотел бы экспортировать файл .csv, содержащий значения из l2 отдельных столбцов и l3 в отдельных столбцах. В этих уникальных именах l есть буква (например, A, B, C) и есть число (например, 2001, 2002, 2003). Я бы разделил их так, чтобы буквы имели свой собственный столбец, а число имело отдельный столбец.

Ожидаемый Результат:

Письмо Номер Значения из l2 Значения из l3
A 2001 10 15
B 2002 11 16
C 2003 12 17
 l lt;- list("A_2001","A_2001","B_2002","B_2002", "C_2003", "C_2003")  l2 lt;- list("1"= 10,  "2" = 11,  "3" = 12)  l3 lt;- list("1"= 15,  "2" = 16,  "3" = 17)   

Ответ №1:

На основе входных данных мы можем unlist list элементы и создать data.frame с read.table и transform — получить unique элементы «l», unlist , читать с read.table указанием _ как sep для создания двух столбцов data.frame , затем unlist » l2 » и » l3 » для добавления новых столбцов в набор данных

 out lt;- transform(read.table(text = unlist(unique(l)), header = FALSE,   col.names = c("Letter", "Number"), sep = "_"),  Values_from_l2 = unlist(l2), Values_from_l3 = unlist(l3))  

-выход

 out  Letter Number Values_from_l2 Values_from_l3 1 A 2001 10 15 2 B 2002 11 16 3 C 2003 12 17  

Комментарии:

1. Хороший трюк с read.table .

2. @r2evans почему вы удалили свой пост. Кажется, что с этим все по-другому, strsplit хотя

3. Да, это грубый подход, который ничем не лучше этого.