将新行附加到包含String的R中的数据框

时间:2016-08-25 16:31:33

标签: r dataframe

我有以下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

我很难理解字符串数据变为NA的原因以及如何修复它。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

使用rbind()功能,而不是尝试将第二个数据帧指定为第一个数据帧的第三行。

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

rbind(example, add)