2016-02-09 22 views
1

我想創建一個數據幀,其列是多個向量的連續元素,所有向量具有相同的長度。例如,與載體pq創建一個數據幀,其中列的數量和名稱是在運行時確定的

p=c(13,27,35,47) 
q=c(800,700,600,400) 

我想建立一個數據幀

df=data.frame(q1=q[1],q2=q[2],q3=q[3],q4=q[4],p1=p[1],p2=p[2],p3=p[3],p4=p[4]) 

的困難在於,所述向量的長度是在運行時確定的,因而它可能是4,如示例中所示,或5,6等。我希望列的編號和名稱在運行時自動更新,而不必每次都重寫data.frame賦值語句。這是可行的嗎?

回答

1

我們可以將它放在一個list並轉換爲data.frame

d1 <- data.frame(as.list(c(q,p))) 
names(d1) <- c(paste0('q', seq_along(q)), paste0('p', seq_along(p))) 

或使用as.data.frame.list

d2 <- cbind(as.data.frame.list(q), as.data.frame.list(p)) 

我們也可以使用make.unique來命名列

make.unique(rep(c('q', 'p'),lengths(list(q,p)))) 
+1

不擔心,評論不適用於您的編輯代碼。謝謝! – DeltaIV

相關問題