2016-11-27 128 views
1

不確定我是否在主題中使用了正確的英語單詞來描述我需要的內容。在R中的data.frame中添加一列在另一個下面

見這個例子

df <- data.frame(a=sample(1:10), b=sample(1:10)) 
df 
    a b 
1 2 9 
2 5 8 
3 10 1 
4 3 7 
5 8 4 
6 6 10 
7 9 5 
8 7 6 
9 1 3 
10 4 2 

我想借此b柱在把它下面a 10個新行。

a 
1 2 
2 5 
3 10 
4 3 
5 8 
6 6 
7 9 
8 7 
9 1 
10 4 
11 9 
12 8 
13 1 
14 7 
15 4 
16 10 
17 5 
18 6 
19 3 
20 2 

我發現的例子有rbind但無法找到如何在我的情況下使用它。

+2

'rbind'失敗。您可以使用'c()'結尾或20x1結果 – Nate

回答

1

你也可以這樣做:因爲它是假設的參數要傳遞中的行,因此2×結果

df2 <- data.frame(a = c(df[,"a"], df[,"b"])) 
+0

如何保留名稱/文本。這一個將我的文字轉換爲數字? –

+0

嗨!你能更具體一點嗎?你的意思是你的專欄的名字?如果是的話,那麼整個問題就是要有一個新的專欄,將所有這些結合起來。如果兩列之一不是數字,它確實會轉換數字。 R試圖找出共同的分母,並將所有的東西都轉換成它(很可能在你的情況下)。 – User2321

+0

在我的情況下,兩欄都是電子郵件地址,所以它們確實有數字和特殊字符。有什麼方法可以指定我只需要字符? –

2

我們可以使用unlist創建一個vector,然後用data.frame包裝它來創建一個新的數據集。

d1 <- data.frame(a=unlist(df, use.names = FALSE)) 
d1 
# a 
#1 2 
#2 5 
#3 10 
#4 3 
#5 8 
#6 6 
#7 9 
#8 7 
#9 1 
#10 4 
#11 9 
#12 8 
#13 1 
#14 7 
#15 4 
#16 10 
#17 5 
#18 6 
#19 3 
#20 2 
相關問題