订购数据集

时间:2015-01-30 09:49:10

标签: r

我有一个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个值。

我不知道我做错了什么,有什么提示吗?

谢谢。

1 个答案:

答案 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