R:将data.frame(包括数字和字符)添加到另一个data.frame中的单元格

时间:2015-05-09 07:56:57

标签: r dataframe

我想做的是这样的:

> a <- data.frame (col1=c(NA,NA,NA,NA), col2=c(NA,NA,NA,NA), col3=c(NA,NA,NA,NA))
> b <- data.frame(cola="test", colb=1)
>  a[1,2:3] <- b  
> a
  col1 col2 col3
1   NA  test    1
2   NA   NA   NA
3   NA   NA   NA
4   NA   NA   NA

但是,通过执行上面的代码得到的是:

> a
  col1 col2 col3
1   NA    1    1
2   NA   NA   NA
3   NA   NA   NA
4   NA   NA   NA

如何将字符添加到另一个data.frame中的特定行?

我可以将字符添加到单个单元格中,但如果添加两个或更多字符,字符似乎会自动转换为数字。

> a[1,2] <- "test"
> a
  col1 col2 col3
1   NA test   NA
2   NA <NA>   NA
3   NA <NA>   NA
4   NA <NA>   NA

1 个答案:

答案 0 :(得分:1)

这是因为b$cola是一个因素。如果将列值转换为字符串,它将起作用。

b$cola <- as.character(b$cola)
a[1,2:3] <- b
a
#   col1 col2 col3
# 1   NA test    1
# 2   NA <NA>   NA
# 3   NA <NA>   NA
# 4   NA <NA>   NA