gpt4 book ai didi

list - 如何排序列表中的变量?

转载 作者:行者123 更新时间:2023-12-01 14:41:08 26 4
gpt4 key购买 nike

我有一个 data.frames 列表。

A <- list(aa = data.frame(var1 = c(1:3), varb = c(1:3), abu = c(1:3)), 
bb = data.frame(abu = c(1:3), var1 = c(1:3), vara = c(1:3), varb = c(1:3)),
cc = data.frame(varb = c(1:3), g = c(1:3)))

输出

> A
$aa
var1 varb abu
1 1 1 1
2 2 2 2
3 3 3 3

$bb
abu var1 vara varb
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3

$cc
varb g
1 1 1
2 2 2
3 3 3

>

如何在这些 data.frames 中对变量进行排序,以便变量的顺序与 data.frame $aa 的顺序相同?如果 data.frame 没有相应的变量,则应将变量创建到包含 NA 数据的 data.frame 中。知道如何实现这一点吗?

最佳答案

你想要这样的东西吗?

> lapply(A, function(x) {
+ x[(setdiff(names(A$aa), names(x)))] <- NA
+ x[names(A$aa)]
+ })
$aa
var1 varb abu
1 1 1 1
2 2 2 2
3 3 3 3

$bb
var1 varb abu
1 1 1 1
2 2 2 2
3 3 3 3

$cc
var1 varb abu
1 NA 1 NA
2 NA 2 NA
3 NA 3 NA

你想如何处理A$aa中没有出现的变量,例如A$bb$vara

略微更新以保留其他变量

> lapply(A, function(x) {
+ x[setdiff(names(A$aa), names(x))] <- NA
+ x[c(names(A$aa), setdiff(names(x), names(A$aa)))]
+ })
$aa
var1 varb abu
1 1 1 1
2 2 2 2
3 3 3 3

$bb
var1 varb abu vara
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3

$cc
var1 varb abu g
1 NA 1 NA 1
2 NA 2 NA 2
3 NA 3 NA 3

关于list - 如何排序列表中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7849418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com