为什么data.frame列在R中没有变化

时间:2014-09-19 03:54:20

标签: r

我有以下数据框:

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

1 个答案:

答案 0 :(得分:3)

这里有两个问题。

  1. 代码不起作用,因为=因为你在函数的参数列表中使用它是不正确的。在rbind中,=用于为参数指定名称。

    要查看此内容,请尝试rbind(ddf, ddf[,1] <- 4)rbind(ddf, ddf[,1]=4)

    同时尝试rbind(ddf, X = 3)并查看行名称。

  2. rbind是一个行绑定函数。因此,当您致电rbind(ddf, ddf[,1]=4)时,您正尝试在ddf的底部添加一个填充了4的新行。


  3. 也就是说,要将第一列中的所有值替换为4,您只需使用ddf[,1]=4,就像在rbind电话中一样,或者您也可以

    ddf$vnum1 <- 4L