2016-01-03 65 views
-1

我想列出一個數據幀(按列排序)的元素使用dplyr數據幀由柱與row.names行名

temp_df<-data.frame(c(1,3),c(2,4)) 
colnames(temp_df)<-c("col1","col2") 
row.names(temp_df)<-c("r1","r2") 
temp_df      

require(dplyr) 
temp_df%>%split(colnames(temp_df)) 

目標

col1 
r1 1 
r2 3 
col2 
r1 2 
r2 4 
+0

爲什麼要這樣做?這是一件很奇怪的事情。 –

+0

請參閱我的答案以獲取可能的解決方案。你能否詳細說明你想解決的更大的問題?我同意@RichardScriven;你當前所需的輸出看起來有點奇怪。 – Heroka

+0

我有一個相關矩陣,我正在嘗試查看每列的相關性的垂直列表,而不是他們當前所在的數據框。 – Rilcon42

回答

0

您可以使用基本列表-R爲此,因爲您只是從數據框中提取列。使用'drop = FALSE'可確保保存行名稱。我確實希望這是您的預期輸出(一列數據框的列表)。

#create vector of columns 
mycols <- colnames(temp_df) 
names(mycols) <- mycols 

#extract data 
res <- lapply(mycols, function(x){temp_df[,x, drop=F]}) 

>res 
$col1 
    col1 
r1 1 
r2 3 

$col2 
    col2 
r1 2 
r2 4 
+0

有沒有辦法將NA值排除在列表中? – Rilcon42

+0

你可以使用'na.omit'。 ('na.omit(temp_df [中,x,滴= F]))') – Heroka