【发布时间】:2019-03-27 07:27:26
【问题描述】:
假设我有一个包含 a、b、c、d、e、f、g、h 列的数据框。
我想将 d 列和 e 列的值相加,并在 d 和 e 之后创建一个包含结果的列,这样它就变成了:
a,b,c,d,e,新列,f,g,h
有没有办法做到这一点?我发现在 R 中重新排序列非常令人沮丧,尤其是当您有一个包含许多列的巨大数据框时。
感谢任何帮助!
【问题讨论】:
假设我有一个包含 a、b、c、d、e、f、g、h 列的数据框。
我想将 d 列和 e 列的值相加,并在 d 和 e 之后创建一个包含结果的列,这样它就变成了:
a,b,c,d,e,新列,f,g,h
有没有办法做到这一点?我发现在 R 中重新排序列非常令人沮丧,尤其是当您有一个包含许多列的巨大数据框时。
感谢任何帮助!
【问题讨论】:
与dplyr
library(dplyr)
data %>%
mutate(newcolumn = d + e) %>%
select(a,b,c,d,e,newcolumn,f,g,h)
data.table
setDT(data)
data[,newcolumn := d + e,]
setcolorder(data, c("a","b","c","d","e","newcolumn")
tibble
library(tibble)
add_column(data, "newcolumn" = data$d + data$e, .after = "e")
base
data <- within(data, newcolumn <- d + e)
data <- data[, c(1:5, 9, 6:8)]
【讨论】: