尝试将数据插入空白数据框时发生错误

时间:2019-02-15 19:32:28

标签: r

我有来自三个不同文件的三列。我想将这三列合并到一个新的数据框中。为此,我执行了以下操作:

  df1 <- read.csv("location of file1")
  df2 <- read.csv("location of file2")
  df3 <- read.csv("location of file3")
  dataset <- data.frame(B1_1=integer(), B1_2=integer(), B1_3=integer(), stringsAsFactors=FALSE)
  dataset$B1_1 <- df1$Rate
  dataset$B1_2 <- df2$Price
  dataset$B1_3 <- df3$Code

我得到的错误:

Error in `$<-.data.frame`(`*tmp*`, B1_1, value = c(5L, 7L, 9L, 11L, 13L,  : 
  replacement has 10 rows, data has 0 

我检查了df1$Ratedf2$Pricedf3$Code中的每一个是否都有数据,换句话说,它们不为空。另外,我还检查了这些列以及整数类型的所有三列的数据类型。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

这是一种将零行数据帧的列替换为正数的方法。

# an example data frame with 2 columns and 0 rows
dat <- data.frame(a = integer(), b = integer())

# a vector of values that should be added to column "a"
vec <- 1:3

# create a data frame with the correct number of rows and add the values to the column
dat[seq_along(vec), ]$a <- vec

#      a  b
# NA   1 NA
# NA.1 2 NA
# NA.2 3 NA