簡體   English   中英

將可變數量的向量添加到矩陣

[英]Add variable number of vectors to matrix

我正在嘗試編寫一個將可變數量的向量添加到矩陣的函數。

這就是我得到向量x1-xi的方式

for (i in 2:ncol(datasource))
{
   temp1 <- paste("x", i-1, sep = "")
   assign(temp1, as.numeric(unlist(datasource[i])))
 }

來自具有不同列數的數據源。 所以我想做的是:

df <- data.frame()
for (i in 2:ncol(datasource))
  {
    df <- cbind(paste("x", i-1, sep = ""))
  }

對於x1-xi向量的數量。 但這是行不通的,因為paste()的輸出為“字符”模式。 是否存在可以在for循環中將向量一一綁定在一起的函數?

我希望得到的輸出:

df
     x1    x2
[1,]  3 21.50
[2,]  3 43.00
[3,]  2 19.90
[4,]  4 36.00
[5,]  4 44.00
[6,]  6 49.80
[7,]  0  1.30
[8,]  0  0.67
[9,]  2 13.40

提前非常感謝大家!

嘗試以下方法:

mtx <- matrix( x1, ncol=1 )
for (i in 2:ncol(datasource))
  {
    mtx <- cbind( get( paste0("x", i-1), mtx))
  }

然后轉換為data.frame。 cbind.data.frame函數不能將空數據cbind.data.frame作為起點。

感謝42的幫助,我明白了:

mtx1 <- matrix(NA, ncol=ncol(datasource)-1, nrow=nrow(datasource))

for (i in 2:ncol(datasource))
{
  mtx1[,i-1] <- get(paste0("x", i-1)) 
}

df1 <- as.data.frame(mtx1)

暫無
暫無

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

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