如何使用 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
广告