如何将全为1的列添加到数据框?

时间:2019-07-30 14:15:56

标签: r dataframe

我有一个数据框,我想添加一个包含条目1的新列。我该怎么做?

例如

   col1.  col2
    1.     2. 
    4.     5. 
    33.     4. 
    5.     3. 

新列

   col1.  col2.  col3
    1.     2.     1
    4.     5.     1
    33.     4.    1
    5.     3.     1

2 个答案:

答案 0 :(得分:3)

df1$col3 <- 1

这应该也可以

同上

df1<-data.frame(df1,col3=1)

也可以工作

答案 1 :(得分:0)

最简单的选择是进行?Extract

df1['col3'] <- 1

使用[代替$的好处之一是我们也可以传递变量标识符

v1 <- 'col3'
df1[v1] <- 1

但是,如果这样做

df1$v1 <- 1

它创建一个名称为“ v1”而不是“ col3”的列


在不更改初始对象的情况下的其他变化是

transform(df1, col3 = 1)
cbind(df1, col3 = 1)

注意:所有这些都会创建一个列,并附加到最​​后一列


此外,还有一个方便的函数add_column,该函数可以通过指定位置来添加列。默认情况下,它将创建该列作为最后一个列

library(tibble)
add_column(df1, col3 = 1)
#  col1. col2 col3
#1     1    2    1
#2     4    5    1
#3    33    4    1
#4     5    3    1

但是,如果我们需要将其更改为特定位置,则会有参数

add_column(df1, col3 = 1, .after = 1)
#   col1. col3 col2
#1     1    1    2
#2     4    1    5
#3    33    1    4
#4     5    1    3

数据

df1 <- structure(list(col1. = c(1, 4, 33, 5), col2 = c(2, 5, 4, 3)),
    class = "data.frame", row.names = c(NA, 
-4L))