Mar*_*ark 69 r insert dataframe
我有一个包含a,b和c列的数据框.我想在b和c之间添加一个新列d.我知道我可以通过使用cbind在最后添加d但是如何将它插入两列之间?
Kev*_*rca 67
我建议你使用的功能add_column()从tibble包.
library(tibble)
dataset <- data.frame(a = 1:5, b = 2:6, c=3:7)
add_column(dataset, d = 4:8, .after = 2)
请注意,您可以使用列名而不是列索引:
add_column(dataset, d = 4:8, .after = "b")
或者使用参数.before而不是.after更方便.
add_column(dataset, d = 4:8, .before = "c")
ash*_*h57 32
只是一个R初学者,但我认为这也有效:
添加新列:
df$d <- list/data
然后你可以重新排序它们.
df <- df[, c("a", "b", "d", "c")]
Mat*_*erg 19
您可以使用[重新排序列,或者按所需顺序显示列.
d <- data.frame(a=1:4, b=5:8, c=9:12)
target <- which(names(d) == 'b')[1]
cbind(d[,1:target,drop=F], data.frame(d=12:15), d[,(target+1):length(d),drop=F])
  a b  d  c
1 1 5 12  9
2 2 6 13 10
3 3 7 14 11
4 4 8 15 12
the*_*ail 12
假设c始终紧随其后b,b无论bdata.frame中的哪个位置,此代码都会添加一列.
> test <- data.frame(a=1,b=1,c=1)
> test
  a b c
1 1 1 1
> bspot <- which(names(test)=="b")
> data.frame(test[1:bspot],d=2,test[(bspot+1):ncol(test)])
  a b d c
1 1 1 2 1
或者更自然地:
data.frame(append(test, list(d=2), after=match("b", names(test))))
创建一个示例 data.frame 并向其添加一列。
df = data.frame(a = seq(1, 3), b = seq(4,6), c = seq(7,9))
df['d'] <- seq(10,12)
df
  a b c  d
1 1 4 7 10
2 2 5 8 11
3 3 6 9 12
按列索引重新排列
df[, colnames(df)[c(1:2,4,3)]]
或按列名
df[, c('a', 'b', 'd', 'c')]
结果是
  a b  d c
1 1 4 10 7
2 2 5 11 8
3 3 6 12 9
这是在数据框的特定位置插入列的快速但肮脏的方法。就我而言,原始数据框中有 5 列:并且我将在和之间c1, c2, c3, c4, c5插入一个新列。c2bc2c3
1)我们首先创建测试数据框:
> dataset <- data.frame(c1 = 1:5, c2 = 2:6, c3=3:7, c4=4:8, c5=5:9)
> dataset
  c1 c2 c3 c4 c5
1  1  2  3  4  5
2  2  3  4  5  6
3  3  4  5  6  7
4  4  5  6  7  8
5  5  6  7  8  9
c2b2)在数据框的末尾添加新列:
> dataset$c2b <- 10:14
> dataset
  c1 c2 c3 c4 c5 c2b
1  1  2  3  4  5  10
2  2  3  4  5  6  11
3  3  4  5  6  7  12
4  4  5  6  7  8  13
5  5  6  7  8  9  14
3) 根据列索引对数据框重新排序。就我而言,我想在现有列 2 和 3 之间插入新列 (6)。我通过使用c(1:2, 6, 3:5)相当于 的向量来寻址数据帧上的列来实现这一点c(1, 2, 6, 3, 4, 5)。
> dataset <- dataset[,c(1:2, 6, 3:5)]
> dataset
  c1 c2 c2b c3 c4 c5
1  1  2  10  3  4  5
2  2  3  11  4  5  6
3  3  4  12  5  6  7
4  4  5  13  6  7  8
5  5  6  14  7  8  9
那里!
| 归档时间: | 
 | 
| 查看次数: | 92964 次 | 
| 最近记录: |