简体   繁体   English

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

[英]R: Adding data.frame (including numbers and characters) to cells in another data.frame

What I want to do is like this: 我想做的是这样的:

> 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

However, what I got by executing the code above is : 但是,我通过执行上面的代码得到的是:

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

How can I add characters to specific rows in another data.frame? 如何将字符添加到另一个data.frame中的特定行?

I could add characters to a single cell, but it seems characters are automatically converted to numbers if I add two or more. 我可以在一个单元格中添加字符,但是如果我添加两个或多个,似乎字符会自动转换为数字。

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

This happens because b$cola is a factor. 发生这种情况是因为b$cola是一个因素。 It will work, if you transform the column values to character strings. 如果将列值转换为字符串,它将起作用。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM