【问题标题】:Create column in R that increments every row to length of dataframe在 R 中创建列,将每一行增加到数据帧的长度
【发布时间】:2021-11-16 05:02:50
【问题描述】:

我想在我的数据框中添加一列,该列从 0 开始,每行递增 0.002,直到数据框结束。

我试过了:

NewCol <- seq(0,len(DF),0.002))
DF <- cbind(DF, NewCol)

我想要的输出是: 0.00 0.002 0.004 0.006 ...到数据框的末尾

NewCol 长度太长,无法绑定到我的数据框。

【问题讨论】:

    标签: r dplyr seq


    【解决方案1】:

    我们可以在 seq 函数中使用 nrow ,就像这样

    df <- data.frame(a = c(1:5), b = 6:10)
      a b
    1 1 o
    2 2 c
    3 3 p
    4 4 u
    5 5 d
    
    df$num = seq(0, by = 0.002, to = nrow(df)*0.002 - 0.002)
    
    # simplified by @Ritchie Sacramento to
    
    df$num = seq(0, by = 0.002, length.out = nrow(df))
    
      a b   num
    1 1 o 0.000
    2 2 c 0.002
    3 3 p 0.004
    4 4 u 0.006
    5 5 d 0.008
    

    【讨论】:

    • 成功了,谢谢!你能解释一下你为什么做“(df)*0.002 - 0.002)吗?
    • @mpvalenc seq(0, to = 1, by = 0.2) 将返回一个长度为 6 的向量,因为它同时包含 0 和 1。当我们将它添加到 data.frame 时,R 会抛出一个错误(您可以尝试 df$test = 1:6)。所以我们只是要求它在序列中少返回 1 步。然而,正如@RitchieSacramento 所指出的,存在length.out 参数可以为我们做到这一点。
    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2021-05-05
    • 2020-09-11
    • 2013-11-18
    • 2020-07-22
    相关资源
    最近更新 更多