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