2017-08-25 100 views
1

這裏是詳細介紹: 一個數據幀,如:如何從R中的data.frame列中創建一個向量?

name height weight 
john 6  160  
mike 6.2 155  
jack 7  180 

我想打一個新的列是最後兩列的組合:我覺得這是很容易與

height_weight  
c(6,160)  
c(6.2,155)  
c(7,180) 

for循環。我試圖找到更有效的方法

此轉換很有用,因爲許多方法需要輸入= c(x1,x2)而不是輸入= ...,如果要獲得列的每個元素的結果 您可以使用sapply/lapply(height_weight,f)

+4

目前尚不清楚你想達到什麼目的。您按預期顯示的內容是三個向量而不是列。 – Roland

+0

我想要一個列(實際上列的類型是一個列表),其中有向量作爲其元素 – cloudscomputes

+1

我認爲你大大高估了有用性並低估了相關的不便。有經驗的R程序員會將這些列分開。 – Roland

回答

1

我們可以使用Map創建listvector s。假設OP需要list

df1$height_weight <- do.call(Map, c(f= c, unname(df1[-1]))) 
df1 
# name height weight height_weight 
#1 john 6.0 160  6, 160 
#2 mike 6.2 155 6.2, 155.0 
#3 jack 7.0 180  7, 180 
+1

因此,功能很酷的東西:地圖是它與數據幀的每一行,而不是每個數據幀的列 – cloudscomputes

-1

其實我覺得有另一種方式,因爲所有申請家庭功能的工作與列未行

使列的轉置做到這一點邏輯 data.frame 那麼你可以在調換data.frame lapply使用和轉你結果返回

-1

多達我可以理解,想你正在尋找這個

data$height_weight <- paste(data$height,data$weight,sep = ",") 
    name height weight  height_weight 
1 john 6.0 160 6,160 
2 mike 6.2 155 6.2,155 
3 jack 7.0 180 7,180 
+0

對不起,我不是這個意思 – cloudscomputes

相關問題