使用cbind()和data.frame()

时间:2018-06-07 12:13:15

标签: r

我使用cbind()和data.frame()将向量放入数据帧。我想在构建数据帧时添加一个新的向量(价格/金钱)。

flowers1:   使用data.frame()创建数据帧;   ' ='分配新的载体

flowers2:   使用cbind()创建数据帧;   ' ='分配新的载体

flowers3:     使用data.frame()创建数据帧;     '< - '分配新的载体

flowers4:     使用cbind()创建数据帧;     '< - '分配新的载体

flowers1和2是我的期望但是在flowers3中,第三列的标题是奇数。在flowers4中,缺少第三列的标题。

我的问题是:

  1. 造成这种情况的原因是什么?

  2. 使用'< - '分配向量之间是否还有其他区别?和' ='

    (我只知道这两种分配方法有不同的优先级和不同的可变寿命?

  3. 创建数据框时是否非法或建议不要指定新的向量?

  4. 谢谢!

    name <- c('iris','daisy')
    color <- c('purple','blue')
    flowers1 <- data.frame(name,color,price = c(10,20))
    flowers1
    # output
    name  color price
    1  iris purple    10
    2 daisy   blue    20
    
    flowers2 <- cbind(name,color,price = c(10,20))
    flowers2
    # output
    name    color    price
    [1,] "iris"  "purple" "10" 
    [2,] "daisy" "blue"   "20"
    
    flowers3 <- data.frame(name,color,price <- c(10,20))
    flowers3
    # output
       name  color price....c.10..20.
    1  iris purple                 10
    2 daisy   blue                 20
    
    flowers4 <- cbind(name,color,money <- c(10,20))
    flowers4
    # output
          name    color        
    [1,] "iris"  "purple" "10"
    [2,] "daisy" "blue"   "20"
    

1 个答案:

答案 0 :(得分:1)

使用=来设置函数参数,使用&lt; - 作为赋值运算符。这可以解释一下:

A = LETTERS[1:5]
B = letters[1:5]

d <- data.frame(A , B, CC <- seq(5, 1, -1))
d
CC # lives outside d!

d1 <- data.frame(A, B, DD = seq(5, 1, -1))
d1
DD # does not live outside d1