У меня есть несколько списков векторов, которые я хочу превратить в кадры данных.
list1 <- list(A1 = LETTERS[1:10], B1 = LETTERS[3:12], C1 = LETTERS[11:20])
list2 <- list(A2 = 2:11, B2 = 1:10, C2 = 3:12)
list3 <- list(A3 = 100:109, B2 = 110:109, C3 = 105:114)
Я хочу, чтобы i-й вектор в каждом списке был столбцом во фрейме данных i.Другими словами, я хочу получить следующий вывод:
> df_list
[[1]]
col1 col2 col3
1 A 2 100
2 B 3 101
3 C 4 102
4 D 5 103
5 E 6 104
6 F 7 105
7 G 8 106
8 H 9 107
9 I 10 108
10 J 11 109
[[2]]
col1 col2 col3
1 C 1 110
2 D 2 109
3 E 3 110
4 F 4 109
5 G 5 110
6 H 6 109
7 I 7 110
8 J 8 109
9 K 9 110
10 L 10 109
[[3]]
col1 col2 col3
1 K 3 105
2 L 4 106
3 M 5 107
4 N 6 108
5 O 7 109
6 P 8 110
7 Q 9 111
8 R 10 112
9 S 11 113
10 T 12 114
Я знаю, что для этого можно использовать циклы for
:
df_list <- NULL
for (i in 1:length(list1)) {df_list[[i]] <- data.frame(col1 = list1[[i]], col2 = list2[[i]], col3 = list3[[i]])}
df_list
Есть ли более эффективный способ сделать это?используя только базовые функции R?
Спасибо!