我有来自三个不同文件的三列。我想将这三列合并到一个新的数据框中。为此,我执行了以下操作:
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$Rate
,df2$Price
和df3$Code
中的每一个是否都有数据,换句话说,它们不为空。另外,我还检查了这些列以及整数类型的所有三列的数据类型。
我该如何解决?
答案 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