2015-09-05 12 views
0

我在循環中遇到一些問題。rbind in loop只綁定數字而不是字符

它似乎不工作,出於某種原因,我運行腳本打印出我需要的行中的「ak」,「aj」,「ar」,「tr」數據框中的字符列表。

它適用於數字。即 - 超級< - data.frame(c(1,2,3,4)),但它似乎不是字符。

任何人都知道爲什麼以及如何讓它與角色一起工作?

謝謝

super <- data.frame(c("ak","aj","ar","tr")) 
test1 <- data.frame() 

for (i in 1:4) 
{ 
    test1 <- rbind(test1,super[i,1]) 
} 
print(test1) 
+1

@Solvi的回答非常好。你的方法中的問題是你創建的數據框有一個因子列而不是一個字符。所以它使用代表因子類別的數字。 – AntoniosK

+0

谷歌搜索'正在成長的對象',看看爲什麼這種方法是一個壞主意。 –

回答

1

現在我不知道你正在使用這個什麼情況下,但這可以在沒有一個for循環來實現:

super <- as.matrix(c("ak","aj","ar","tr")) 
test1 <- data.frame() 
test1 <- rbind(test1,super) 
print(test1) 

as.matrix()用於使超級列向量。

或者簡單:

test1 <- data.frame(super=c("ak","aj","ar","tr")) 

如果你喜歡的循環工作原理,以及:

super <- c("ak","aj","ar","tr") 
test1 <- data.frame() 
for (i in 1:4){ 
    test1[i,1] <- super[i] 
} 
print(test1) 

關於爲什麼的數字顯示在您的例子,它看起來像數字代表的字母排序人物,我不知道爲什麼。

相關問題