Max*_*x F 4 r list dataframe dplyr
我有一个包含 3 个元素的列表,每个元素都有不同的值集和数量。我想把这个列表变成一个简单的两列数据框。
第一列是列表元素的值,第二列是列表元素本身的名称。
myList <- list(A = c(1,2,3),
B = c(10,20,30,40),
C = c(100,200,300,400,500))
Run Code Online (Sandbox Code Playgroud)
所以理想的结果是这样的:
Value List
1 A
2 A
10 B
100 C
......
Run Code Online (Sandbox Code Playgroud)
所以我知道我可以通过一系列 rbind 来做到这一点:
df <- data.frame(Value = myList[[A]],cluster = A) %>%
rbind(data.frame(Value = myList[[B]],cluster = B)) %>%
rbind(data.frame(Value = myList[[C]],cluster = C))
Run Code Online (Sandbox Code Playgroud)
我可能可以用循环或 lapply 来清理它......但似乎应该有一种更简单的方法来实现它!
我们可以使用stack来自base R
stack(myList)
Run Code Online (Sandbox Code Playgroud)
-输出
values ind
1 1 A
2 2 A
3 3 A
4 10 B
5 20 B
6 30 B
7 40 B
8 100 C
9 200 C
10 300 C
11 400 C
12 500 C
Run Code Online (Sandbox Code Playgroud)