2016-08-25 42 views
-3

我有下列R-代碼:追加新的生產線,以數據幀R中包含字符串

example = data.frame(
    cola = c("mySTR1","mySTR2"),  
    colb = c("04-05-2015","04-05-2015"), 
    A = c(-1.41,-7.41),  
    B = c(58.08375106,0.001), 
    C = c(35.21623542,82.90195247) 
) 

,這讓我下表:

cola  colb  A  B  C 
1 mySTR1 04-05-2015 -1.41 58.08375 35.21624 
2 mySTR2 04-05-2015 -7.41 0.00100 82.90195 

現在我想添加一個新的行,我用下面的代碼嘗試它:

example[3,] = data.frame(
    cola = "STR3", 
    colb = "05-05-2015", 
    A = -0.58, 
    B = 30.68441404, 
    C = 50 
) 

和返回的表是:

cola  colb  A  B  C 
1 STR1 04-05-2015 -1.41 58.08375 35.21624 
2 STR2 04-05-2015 -7.41 0.00100 82.90195 
3 <NA>  <NA> -0.58 30.68441 50.00000 

正如你可以看到可樂COLB有NA和得到了以下錯誤:

1: In `[<-.factor`(`*tmp*`, iseq, value = 1L) : 
invalid factor level, NA generated 
2: In `[<-.factor`(`*tmp*`, iseq, value = 1L) : 
invalid factor level, NA generated 

我有困難理解,爲什麼字符串數據變得不適用,我該怎麼辦解決它。有人可以幫忙嗎?

+0

[**搜索**](http://stackoverflow.com/search?tab=votes&q=%5br%5d%20R%20invalid%20factor%20level%2c%20NA%20generated)。 「這個問題沒有顯示任何研究工作」 – Henrik

回答

1

使用rbind()函數,而不是嘗試將第二個數據幀分配爲第一個數據幀的第三行。

add <- data.frame(
    cola = "STR3", 
    colb = "05-05-2015", 
    A = -0.58, 
    B = 30.68441404, 
    C = 50 
) 

rbind(example, add) 
發佈前
相關問題