我有一个dataframe
的列表,我想根据3栏订购。
我尝试过应用匿名函数
mylist<-lapply(mylist, function (x) x[order((data[,col1]),(data$namecol2),na.last=NA),])
我已经尝试了一个循环:
for (i in 1:length(mylist)) {
list_sorted <-mylist[[i]][order((data[,col1]),(data$namecol2),na.last=NA),]
}
无论哪种方式,我都会得到dataframe
的列表,当它们不在第一位时,它们会充满NA。这一步创建了dataframe
满的NA,我检查了之前的步骤并返回了我的dataframe
个值。
我不知道我做错了什么,有什么提示吗?
谢谢。
答案 0 :(得分:1)
我猜你有一个包含数据帧的列表,并希望根据数据框中的列对每个数据帧进行排序。
我下面的例子是一个包含两个数据帧的列表,数据帧由两列组成(&#34; x&#34;和&#34; y&#34;)。我根据专栏&#34; x&#34;按降序排列。希望这能让你有机会完成你想要的任务。
x <- rep(1:5)
y <- rnorm(5)
dfrm <- data.frame(x,y)
str(dfrm)
names(dfrm)
listd <- list(dfrm,dfrm)
str(listd)
listsorted <- lapply(listd, function(z) z[with(z,order(x,decreasing=TRUE,na.last=NA)),])
listsorted