# Adding obs. -------------------------------------- d1 <- data.frame(name=c('Kim','Choi','Park','Lee'),age=c(22,27,24,32)) d2 <- data.frame(age=c(23,22),name=c('Yoo','Kang')) rbind(d1,d2) d1 <- data.frame(name=c('Kim','Choi','Park','Lee'),age=c(22,27,24,32)) d2 <- list(age=c(23,22),name=c('Yoo','Kang')) rbind(d1,d2) d1 <- data.frame(name=c('Kim','Choi','Park','Lee'),age=c(22,27,24,32),stringsAsFactors=F) d2 <- list(age=c(23,22),name=c('Yoo','Kang')) rbind(d1,d2) d1 <- data.frame(x1=c(1,4,3),x2=1:3) d2 <- matrix(0,2,2) colnames(d2) = c('x1','x2') d3 <- rbind(d1,d2) class(d3)
时间: 2023-12-23 17:06:04 浏览: 40
这段代码介绍了 R 语言中如何向数据框中添加新的观测,并且介绍了一些常见的错误和解决方法。
在第一个例子中,d1 和 d2 是两个数据框,使用 rbind(d1, d2) 可以将它们按行拼接起来。这个例子的代码已经在上一个问题中给出了。
在第二个例子中,d2 是一个列表,而不是数据框。虽然 rbind() 函数可以接受列表作为参数,但是它会将列表中的每个元素都视为一个单独的观测,而不是将它们拼接成一个完整的观测。因此,rbind(d1, d2) 的结果为:
name age
1 Kim 22
2 Choi 27
3 Park 24
4 Lee 32
5 <NA> 23
6 <NA> 22
其中最后两行的 name 列都是缺失值 NA。
在第三个例子中,d1 中的列名和 d2 中的列名顺序不同,但是它们都是字符型的列。因此,在拼接之前需要将 d1 中的字符串列设置为不转换为因子变量。这可以通过在创建数据框时设置 stringsAsFactors 参数为 FALSE 来实现。因此,正确的代码应该是:
```
d1 <- data.frame(name=c('Kim','Choi','Park','Lee'), age=c(22,27,24,32), stringsAsFactors = FALSE)
d2 <- list(age=c(23,22), name=c('Yoo','Kang'))
rbind(d1, d2)
```
这个例子的结果为:
name age
1 Kim 22
2 Choi 27
3 Park 24
4 Lee 32
5 Yoo 23
6 Kang 22
在第四个例子中,d2 是一个矩阵,而不是数据框。虽然它的列名和 d1 中的列名相同,但是它的类型不同。因此,在拼接之前需要将 d2 转换为数据框。可以使用 as.data.frame() 函数将矩阵转换为数据框。因此,正确的代码应该是:
```
d1 <- data.frame(x1=c(1,4,3), x2=1:3)
d2 <- matrix(0, 2, 2)
colnames(d2) = c('x1', 'x2')
d3 <- rbind(d1, as.data.frame(d2))
class(d3)
```
这个例子的结果为:
```
[1] "data.frame"
```
这说明 d3 是一个数据框。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)