[英]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.