我有一个1:323的数据帧列表,它们是mrns [[1]]:mrns [[323]],每个数据帧都有一个名为" ar.cat"的列。它将来自另一列ar.value的连续数据分类。
> dput(head(mrns[[1]]))
ar.value = c(32.8, 32.8, 32.8,
32.8, 32.8, 32.8), ar.cat = c("HIGH", "HIGH", "HIGH", "HIGH",
"HIGH", "HIGH")),
> dput(head(mrns[[2]]))
ar.value = c(2.7, 2.7, 2.7, 2.7, 2.7,
2.7), ar.cat = c("LOW", "LOW", "LOW", "LOW", "LOW", "LOW"
)),
" ar.cat"具有低,中和高的值。每个数据帧具有相同的值" ar.cat"对于数据帧的所有行。因此,对于数据帧1中的每一行,它将具有"高"值,然后对于数据帧2中的每一行,它将具有"低"价值等。
我试图通过" ar.cat"来命令所有323个数据帧。列,所以第一个但是很多数据帧(1:105)的值为"高",下一个(106:207)的值为"低",然后是下一个(?) 208:323)具有" medium"的值。我假设字母顺序最简单。
到目前为止我的内容如下:
sortCat <- function(df) {
sort(df$ar.cat)
return(df)
}
sorted <- lapply(mrns, sortCat)
但是这会订购每一个&#34; ar.cat&#34;每个数据框内的列,而不是所有数据帧之间的列。
有人有任何建议吗?
答案 0 :(得分:3)
您可以尝试使用sapply:
order(sapply(mrns, function(x){unique(x$ar.cat)}))
但我认为只有你的字符串是字符而不是因素
才有效