如何使用 R 中带有行名的列表中存储的数据帧来创建一个单一的数据帧?


如果我们有多个大小相同的、存储在列表中的数据帧,并且我们认为这些数据帧具有相似的特征,那么我们可以创建一个单一的数据帧。这可以通过调用 do.call 来完成。例如,如果我们有一个已定义的列表,其名称为 List,其中包含具有相同行数且具有其名称的数据帧,那么可以通过调用 do.call(rbind,unname(List)) 来创建一个单一的数据帧。

示例

 实时演示

df1<−data.frame(x=rnorm(10),row.names=sample(LETTERS[1:26],10))
df2<−data.frame(x=rnorm(10),row.names=sample(LETTERS[1:26],10))
df3<−data.frame(x=rnorm(10),row.names=sample(LETTERS[1:26],10))
List<−list(First=df1,Second=df2,Third=df3)
List

输出

$First
x
G 0.30699620
P 1.11451394
I 0.16537658
J −0.99267571
X −0.00183875
T 0.65413132
M 0.46023584
H −0.23309683
W 0.71764386
L 0.71318867
$Second
x
B 0.12553866
X 0.78585517
D −0.86144038
I −0.46069668
T −0.04954584
S 0.41792421
L 0.77762054
U 0.10214920
P −0.54777071
Z −0.17795518
$Third
x
P −1.03833288
A −2.06108259
D 0.06075337
S −0.25815094
V −1.14154154
Z 1.28649520
R 0.58446876
O −0.08794448
C −0.14094378
N −0.49827426

将列表数据帧转换为一个单一的数据帧 -

示例

df<−do.call(rbind,unname(List))
df

输出

x
G 0.30699620
P 1.11451394
I 0.16537658
J −0.99267571
X −0.00183875
T 0.65413132
M 0.46023584
H −0.23309683
W 0.71764386
L 0.71318867
B 0.12553866
X1 0.78585517
D −0.86144038
I1 −0.46069668
T1 −0.04954584
S 0.41792421
L1 0.77762054
U 0.10214920
P1 −0.54777071
Z −0.17795518
P2 −1.03833288
A −2.06108259
D1 0.06075337
S1 −0.25815094
V −1.14154154
Z1 1.28649520
R 0.58446876
O −0.08794448
C −0.14094378
N −0.49827426

更新时间:2021-02-08

126 次浏览

开启你的 职业生涯

完成课程获得认证

开始吧
广告