我有一个数据框类型的对象work,内容如下
<br />
country GNP per<br />
1 Nigeria 0.23 118<br />
2 Korea 5.60 23<br />
3 Greece 7.65 10<br />
4 Israel 10.50 9<br />
5 Singapore 12.70 8<br />
6 Italy 14.60 6<br />
7 Finland 15.50 6<br />
8 Japan 17.10 4<br />
9 Austria 17.36 5<br />
10 Canada 19.50 7<br />
11 USA 21.80 8<br />
想做耐抗线拟合,现在想在work里多加一列kexi来放残差,或者是把work和kexi合并到一个新的数据框,不知道应该怎么做。
我建立了一个新的数据框
>test<-data.frame()
如果直接复制test<-work是可以的
我进行了下列操作,都是错误的,不知道是什么原因
<br />
> test[,1:3]<-work<br />
Warning messages:<br />
1: replacement element 1 has 11 rows to replace 0 rows in: "[<-.data.frame"(`*tmp*`, , 1:3, value = list(country = c(9, <br />
2: replacement element 2 has 11 rows to replace 0 rows in: "[<-.data.frame"(`*tmp*`, , 1:3, value = list(country = c(9, <br />
3: replacement element 3 has 11 rows to replace 0 rows in: "[<-.data.frame"(`*tmp*`, , 1:3, value = list(country = c(9, <br />
> test<br />
[1] country GNP per <br />
<0 rows> (or 0-length row.names)<br />
> test[,1]<-work$country<br />
Error in "[<-.data.frame"(`*tmp*`, , 1, value = c(9, 8, 4, 5, 10, 6, 3, : <br />
replacement has 11 rows, data has 0<br />
我看test现在有了列名,就又
<br />
> test$country<-work$country<br />
Error in "$<-.data.frame"(`*tmp*`, "country", value = c(9, 8, 4, 5, 10, : <br />
replacement has 11 rows, data has 0<br />
不知道是错在什么地方
PS:我发现work$country是个因子,而不是一个字符型向量,不知道是什么原因?GNP和per都是数值型向量而不是因子。
希望得到解答,谢谢。