R 将帧列表排序为新帧
我在论坛上走来走去,但我找不到我需要做的,我也做不到。 我有这个示例数据R 将帧列表排序为新帧,r,list,R,List,我在论坛上走来走去,但我找不到我需要做的,我也做不到。 我有这个示例数据 A<-c(1,4,2,6,9,-5,-2,-5) B<-c(-4,-1,4,10,3.5,2.9,-1.4,0.5) AA<-data.frame(A,B,C,D) C<-c(3,1.3,5.4,-4.3,5.5,2.5,-6.4,8.2) D<-c(-2.4,-4.3,2.4,5.4,1.2,9.3,7.4,-4.1) E<-c(0.4,2.4,5.6,2.8,4.5,2.9,3.3,
A<-c(1,4,2,6,9,-5,-2,-5)
B<-c(-4,-1,4,10,3.5,2.9,-1.4,0.5)
AA<-data.frame(A,B,C,D)
C<-c(3,1.3,5.4,-4.3,5.5,2.5,-6.4,8.2)
D<-c(-2.4,-4.3,2.4,5.4,1.2,9.3,7.4,-4.1)
E<-c(0.4,2.4,5.6,2.8,4.5,2.9,3.3,8.1)
BB<-data.frame(C,D,E,G)
colnames(BB)<-c("A","B","C","D")
G<-c(1.4,2.5,-3.2,-6.3,8.2,-7.4,-0.3,1.1)
CC<-data.frame(E,G,A,B)
colnames(CC)<-c("A","B","C","D")
L<-list(AA,BB,CC)
L
在这种情况下
等等,,
注意:我在原始数据中有一些NA,所以我希望NA不会出现。
有什么建议或方法吗?
谢谢我想做如下事情:
dat <- suppressWarnings(data.frame(sapply(names(L[[1]]) , function(x) unlist(L)[grep(x, names(unlist(L)))])))
dat$Location <- paste(paste0("[[", rep(seq_len(length(L)), each = unique(sapply(L, nrow))), "]]"), paste0("[[", rep(seq_len(unique(sapply(L, nrow))), length(L)), "]]"))
dat <- dat[order(-dat$B), ]
由于源数据错误,该问题已被编辑。我希望现在很清楚。ThanksI为您发布的第一个数据集编写了一个简单的方法,但我没有检查您的新更新。如果您愿意,我可以发布上一个数据集的解决方案…这里没有
利润u L_u2
,但您仍然将其解析为帧
@David Arenburg我的错误,它已被编辑。是的,你可以发布它,我会尝试更改它来处理这些数据。@Davidernburg我重新打开了这个问题,因为我一周内都没法解决它。我想请你帮我解答这个编辑过的问题。这个问题和你给我讲的一样,只是数据有点不同(我不能用这种方式处理)。多谢各位,快起来!我必须学习很多,很好的代码。但它的级别比我高,所以我还无法将其转换为新数据。但是谢谢,谢谢你,这样会更好。在工作了几个小时后,我意识到,如果列表中各个data.frames中的行数不同,这个解决方案就不起作用了。我不能够理解结果,但现在我明白了。它从第一个矩阵重复相同数量的行。1:在rep(seq_len(length(L)),each=unique(sappy(L,nrow)):用于'each'参数的第一个元素2:在seq_len(unique)(sappy(L,nrow)):用于'length.out'参数的第一个元素有什么建议如何解决这个问题?
A B C D
[[1]] [[4]] 6 10 -4.3 5.4
[[2]] [[6]] 2.5 9.3 2.9 -7.4
dat <- suppressWarnings(data.frame(sapply(names(L[[1]]) , function(x) unlist(L)[grep(x, names(unlist(L)))])))
dat$Location <- paste(paste0("[[", rep(seq_len(length(L)), each = unique(sapply(L, nrow))), "]]"), paste0("[[", rep(seq_len(unique(sapply(L, nrow))), length(L)), "]]"))
dat <- dat[order(-dat$B), ]
A B C D Location
4 6.0 10.0 -4.3 5.4 [[1]] [[4]]
14 2.5 9.3 2.9 -7.4 [[2]] [[6]]
21 4.5 8.2 9.0 3.5 [[3]] [[5]]
15 -6.4 7.4 3.3 -0.3 [[2]] [[7]]
12 -4.3 5.4 2.8 -6.3 [[2]] [[4]]
3 2.0 4.0 5.4 2.4 [[1]] [[3]]
5 9.0 3.5 5.5 1.2 [[1]] [[5]]
6 -5.0 2.9 2.5 9.3 [[1]] [[6]]
18 2.4 2.5 4.0 -1.0 [[3]] [[2]]
11 5.4 2.4 5.6 -3.2 [[2]] [[3]]
17 0.4 1.4 1.0 -4.0 [[3]] [[1]]
13 5.5 1.2 4.5 8.2 [[2]] [[5]]
24 8.1 1.1 -5.0 0.5 [[3]] [[8]]
8 -5.0 0.5 8.2 -4.1 [[1]] [[8]]
23 3.3 -0.3 -2.0 -1.4 [[3]] [[7]]
2 4.0 -1.0 1.3 -4.3 [[1]] [[2]]
7 -2.0 -1.4 -6.4 7.4 [[1]] [[7]]
9 3.0 -2.4 0.4 1.4 [[2]] [[1]]
19 5.6 -3.2 2.0 4.0 [[3]] [[3]]
1 1.0 -4.0 3.0 -2.4 [[1]] [[1]]
16 8.2 -4.1 8.1 1.1 [[2]] [[8]]
10 1.3 -4.3 2.4 2.5 [[2]] [[2]]
20 2.8 -6.3 6.0 10.0 [[3]] [[4]]
22 2.9 -7.4 -5.0 2.9 [[3]] [[6]]