2015-04-05 48 views
1

我有一个如下表(1K多行):分割数据表小的表ř

x1  x2 x3 x4 
7809 243638 1 1 
7809 243638 1 1 
7809 243638 1 1 
... 
3453 222222 1 0 

和我需要拆分此表小的表(这将是在我的环境作为数据帧)基于第二栏x2。 我试图做split(dat,dat$x2)和R做对了,但在列表中。

+0

正如你自己所说的那样:“R做了**正确的**,但在**列表**”。 R确实做得对,并将其保留在列表格式中,因为用大量数据集污染您的全球环境是错误的。 – 2015-04-05 17:10:14

回答

1

如果你

split_list <- split(dat,dat$x2) 

你可以用

split_list[[1]] 
split_list[[2]] 
.... 

访问分裂结果,以结果

# to a data.frame 
df1 <- as.data.frame(split_list[[1]]) 

# to a table 
t1 <- as.table(split_list[[1]]) 

存储在多个数据集(即使转换我不看不到它的好处)

names1 <- names(split_list) 

for(i in seq_along(names1)){ 
    assign(names1[i], split_list[[i]]) 
} 
+0

了解它,以及如何循环700多个结果? – user4751931 2015-04-05 20:10:55

+1

http://stackoverflow.com/questions/25974260/assign-list-of-data-to-variables-in-for-loop – 2015-04-05 23:17:36