如何向现有数据框添加新变量,但我想添加到前端而不是后端。例如,我的数据框是
b c d 1 2 3 1 2 3 1 2 3
我想添加一个新变量a,因此 Dataframe 将如下所示
a b c d 0 1 2 3 0 1 2 3 0 1 2 3
fv2wmkja1#
使用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
vojdkbi02#
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
mpbci0fu3#
增加“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
de90aj5v4#
如果你想以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
ijnw1ujt5#
前面的答案显示了3种方法1.通过创建新数据框1.通过使用“cbind”1.通过添加列“a”,并使用列名或索引按列对数据框进行排序让我展示第4种方法“使用适合我的情况的“cbind”和“rename1.创建数据框
df <- data.frame(b = c(1, 1, 1), c = c(2, 2, 2), d = c(3, 3, 3))
1.获取“新”列的值
new_column <- c(0, 0, 0)
1.将“新”列与现有列合并
df <- cbind(new_column, df)
1.重命名“新”列名
colnames(df)[1] <- "a"
huwehgph6#
cbind的固有值按其参数顺序排序。将第一列用作第一个参数cbind(fst_col,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,最后一列)
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
6条答案
按热度按时间fv2wmkja1#
使用
cbind
,例如给出:
vojdkbi02#
mpbci0fu3#
增加“a”栏
使用列名按列排序
或使用索引按列排序
de90aj5v4#
如果你想以
tidyverse
的方式来做,试试tibble
中的add_column
,它允许你用.before
或.after
参数来指定放置新列的位置:ijnw1ujt5#
前面的答案显示了3种方法
1.通过创建新数据框
1.通过使用“cbind”
1.通过添加列“a”,并使用列名或索引按列对数据框进行排序
让我展示第4种方法“使用适合我的情况的“cbind”和“rename
1.创建数据框
1.获取“新”列的值
1.将“新”列与现有列合并
1.重命名“新”列名
huwehgph6#
cbind的固有值按其参数顺序排序。
将第一列用作第一个参数
cbind(fst_col,df)
cbind(df,最后一列)