簡體   English   中英

如何復制數據框中的列?

[英]How to replicate a column within a data frame?

我正在嘗試將數據框的一列復制到相同或新的數據框中。 我的數據框df只包含一列:

col
1
2
3
4
5

我希望得到這樣的東西(另一個/相同的數據框,而不是矩陣):

col1 col2 col3 col4 col5
1    1    1    1    1
2    2    2    2    2
3    3    3    3    3
4    4    4    4    4
5    5    5    5    5

我嘗試使用new_df <- rep(df[,c(1)],5)創建一個新的數據框,我不明白為什么它不起作用。

只需分配列

df[paste0('col', 2:5)] <- df$col

-輸出

> df
  col col2 col3 col4 col5
1   1    1    1    1    1
2   2    2    2    2    2
3   3    3    3    3    3
4   4    4    4    4    4
5   5    5    5    5    5

或者,如果我們使用rep ,輸入可以是listdata.frame而不是向量,即df[,1]將 data.frame 列強制轉換為vector ,默認情況下drop = TRUE in data.frame 相反(如果只有列,或者rep(df, 5) ),或者如果有多個列子集作為df[1] (- 返回一個包含一列的數據框)作為rep中的輸入。 output 將是一個向量list ,我們通過用 data.frame 包裝將其轉換為data.frame

data.frame(rep(df[1],5))

或者也可以使用replicate

as.data.frame(replicate(5, df$col))

數據

df <- structure(list(col = 1:5), class = "data.frame", row.names = c(NA, 
-5L))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM