Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中的列表列表中重新排列层次结构_R_List_Hierarchy - Fatal编程技术网

在R中的列表列表中重新排列层次结构

在R中的列表列表中重新排列层次结构,r,list,hierarchy,R,List,Hierarchy,我想知道在R中是否有一种简单的方法来做以下事情: 假设我有一大堆关于四辆车的数据:白色宝马、黑色宝马、白色GMC和黑色GMC 我把它们放在一个名为cars的列表中: 关于白色宝马的数据在汽车[[1][[1]], 黑色宝马的数据在汽车[[1][[2]], 白色GMC的数据在汽车[[2][[1]], 黑色GMC的数据在汽车[[2][[2]]中 在这种情况下,第一个坐标表示汽车的品牌,而第二个坐标表示汽车的颜色 我现在希望交换坐标,以便第一个坐标指示颜色,而第二个坐标指示汽车品牌: 关于白色宝马的数据

我想知道在
R
中是否有一种简单的方法来做以下事情:

假设我有一大堆关于四辆车的数据:白色宝马、黑色宝马、白色GMC和黑色GMC
我把它们放在一个名为
cars
的列表中:

关于白色宝马的数据在
汽车[[1][[1]]

黑色宝马的数据在
汽车[[1][[2]]

白色GMC的数据在
汽车[[2][[1]]

黑色GMC的数据在
汽车[[2][[2]]

在这种情况下,第一个坐标表示汽车的品牌,而第二个坐标表示汽车的颜色

我现在希望交换坐标,以便第一个坐标指示颜色,而第二个坐标指示汽车品牌:

关于白色宝马的数据在
汽车[[1][[1]]

黑色宝马的数据在
汽车[[2][[1]]

白色GMC的数据在
汽车[[1][[2]]

黑色GMC的数据在
汽车[[2][[2]]

因此,我想更改列表中的层次结构


感谢您的帮助

我不认为这是一项非常常见的列表任务。听起来,如果您以一种简单的方式存储数据,并根据需要对其进行子集,效果会更好。然而,这里有一种方法可以交换。使用示例输入

cars <- list(list("white BMW", "black BMW"), list("white GMC", "black GMC"))

相同样本数据的另一种解决方案

汽车
i <- 1:length(cars)
j <- 1:length(cars[[1]])
swap<-lapply(j, function(j) lapply(i, function(i) cars[[i]][[j]]))
cars[[2]][[1]]
# [1] "white GMC"
swap[[2]][[1]]
# [1] "black BMW"
do.call(function(...) Map(list, ...), cars)