如何添加一个新的变量到现有的数据框架,但我想添加到前端不结束。 我的数据框是
b c d 1 2 3 1 2 3 1 2 3
我想添加一个新变量 a,这样数据框架看起来就像
a b c d 0 1 2 3 0 1 2 3 0 1 2 3
df <- data.frame(b = c(1, 1, 1), c = c(2, 2, 2), d = c(3, 3, 3)) df ## b c d ## 1 1 2 3 ## 2 1 2 3 ## 3 1 2 3 df <- data.frame(a = c(0, 0, 0), df) df ## a b c d ## 1 0 1 2 3 ## 2 0 1 2 3 ## 3 0 1 2 3
使用 cbind例子。
cbind
df <- data.frame(b = runif(6), c = rnorm(6)) cbind(a = 0, df)
给予:
> cbind(a = 0, df) a b c 1 0 0.5437436 -0.1374967 2 0 0.5634469 -1.0777253 3 0 0.9018029 -0.8749269 4 0 0.1649184 -0.4720979 5 0 0.6992595 0.6219001 6 0 0.6907937 -1.7416569
加上“ a”栏
> df["a"] <- 0 > df b c d a 1 1 2 3 0 2 1 2 3 0 3 1 2 3 0
使用列名按列排序
> df <- df[c('a', 'b', 'c', 'd')] > df a b c d 1 0 1 2 3 2 0 1 2 3 3 0 1 2 3
或者使用索引按列排序
> df <- df[colnames(df)[c(4,1:3)]] > df a b c d 1 0 1 2 3 2 0 1 2 3 3 0 1 2 3
前面的答案显示了3种方法
让我来展示 # 4方法“通过使用“ cbind”和“ rename”,它们对我的案例有效
df <- data.frame(b = c(1, 1, 1), c = c(2, 2, 2), d = c(3, 3, 3))
new_column = c(0, 0, 0)
df <- cbind(new_column, df)
colnames(df)[1] <- "a"
如果希望以 tidyverse的方式执行此操作,请尝试 tibble中的 add_column,它允许您指定将带有 .before或 .after参数的新列放置在何处:
tidyverse
tibble
add_column
.before
.after
library(tibble) df <- data.frame(b = c(1, 1, 1), c = c(2, 2, 2), d = c(3, 3, 3)) add_column(df, a = 0, .before = 1) # a b c d # 1 0 1 2 3 # 2 0 1 2 3 # 3 0 1 2 3
Cbind 通过它的参数顺序来固有顺序。
用你的第一栏作为你的 第一次辩论
Cbind (fst _ coll,df)
fst_col df_col1 df_col2 1 0 0.2 -0.1 2 0 0.2 -0.1 3 0 0.2 -0.1 4 0 0.2 -0.1 5 0 0.2 -0.1
Cbind (df,last _ coll)
df_col1 df_col2 last_col 1 0.2 -0.1 0 2 0.2 -0.1 0 3 0.2 -0.1 0 4 0.2 -0.1 0 5 0.2 -0.1 0