【发布时间】:2013-07-11 12:21:03
【问题描述】:
假设我有以下数据框:
x <- data.frame(let = sample(LETTERS, 100, replace = T),
num = sample(1:10, 100, replace = T))
我想创建x 的几个子集,其中每个新数据框都以x$let 的级别命名。到目前为止,我已经想出了这个简单的功能:
ss <- function(letra){
return(subset(x, let == letra))
}
这是非常简陋的,并没有按照我的意愿命名。我的问题是:如何自动执行以下过程?
a <- ss('A')
b <- ss('B')
c <- ss('C')
...
z <- ss('Z')
【问题讨论】:
-
虽然这当然是可能的,但这不是一个好的做法。您介意将所有子集存储在一个列表中,而不是将每个子集存储在一个单独的变量中吗?
-
答案可能是“不要”。请改用
x <- lapply(LETTERS, ss)。 -
...或者可能只是
split(x,x$let)。 -
问题是最后我必须将每个子集作为 XLS 文件通过电子邮件发送给不同的人。将子集存储在列表中是否允许我这样做?
-
它不仅允许这样做,而且会让它更容易。
标签: r function batch-processing subset