我有以下数据框:
ddf
vnum1 vnum2
1 1 0.6380312
2 1 0.1737218
3 1 0.3528707
4 1 0.8670922
5 1 0.6498109
>
>
> str(ddf)
'data.frame': 5 obs. of 2 variables:
$ vnum1: num 1 1 1 1 1
$ vnum2: num 0.638 0.174 0.353 0.867 0.65
>
我想将vnum1的所有值从1更改为4.
为什么以下不起作用:
> rbind(ddf, ddf[,1]=4)
Error: unexpected '=' in "rbind(ddf, ddf[,1]="
以下只添加一个数字,并且两个列都添加了一个数字。它显然无法正常工作。
> rbind(ddf, (ddf[,1]=4))
vnum1 vnum2
1 1 0.6380312
2 1 0.1737218
3 1 0.3528707
4 1 0.8670922
5 1 0.6498109
6 4 4.0000000
答案 0 :(得分:3)
这里有两个问题。
代码不起作用,因为=
因为你在函数的参数列表中使用它是不正确的。在rbind
中,=
用于为参数指定名称。
要查看此内容,请尝试rbind(ddf, ddf[,1] <- 4)
与rbind(ddf, ddf[,1]=4)
同时尝试rbind(ddf, X = 3)
并查看行名称。
rbind
是一个行绑定函数。因此,当您致电rbind(ddf, ddf[,1]=4)
时,您正尝试在ddf
的底部添加一个填充了4的新行。
也就是说,要将第一列中的所有值替换为4,您只需使用ddf[,1]=4
,就像在rbind
电话中一样,或者您也可以
ddf$vnum1 <- 4L